雙中心建設期間,xxx機房內(nèi)部分mysql備庫出現(xiàn)復制出錯現(xiàn)象,所有出錯信息一致,錯誤信息如下:
具體出錯原因:
從以上信息看,在對表“t_xxx_xxxxx”進行更新操作時,沒找到相應的記錄。
目前所有mysql主從采用4并發(fā)、半同步方式進行數(shù)據(jù)復制,以保證主從數(shù)據(jù)復制的效率與數(shù)據(jù)一致性。由本次具體出錯信息看,當時正有4個線程在并發(fā)進行數(shù)據(jù)同步:
線程1:操作“5830d371-600d-11e8-bd61-fa163ef6f4ff:240662”事務
線程2:操作“5830d371-600d-11e8-bd61-fa163ef6f4ff:240659”事務
線程3:操作“5830d371-600d-11e8-bd61-fa163ef6f4ff:240660”事務
線程4:操作“5830d371-600d-11e8-bd61-fa163ef6f4ff:240661”事務
Mysql數(shù)據(jù)復制是在進行“5830d371-600d-11e8-bd61-fa163ef6f4ff:240662”事務操作時出現(xiàn)了“更新數(shù)據(jù)時,無法找到相應記錄”錯誤。
1、分析binlog
分析“5830d371-600d-11e8-bd61-fa163ef6f4ff:240662”事務所在binlog:
該事務是個更新”t_xxx_xxxxx”的操作,修改記錄”call_swftno=2018052713390100901288006”
其它三個事務為:
5830d371-600d-11e8-bd61-fa163ef6f4ff:240659
該事務為表“t_xxx_xxxxx”的insertinto on語句,共插入50條記錄,其中包括記錄“call_swftno=2018052713390100901288006”記錄的插入
5830d371-600d-11e8-bd61-fa163ef6f4ff:240660
該事務為表“t_xxx_xxxxx”的insertinto on語句,共插入50條記錄
5830d371-600d-11e8-bd61-fa163ef6f4ff:240661
該事務為表“t_xxx_xxxxxinfo”的更新操作
查看4個事務在主庫上的提交次序
從“l(fā)ast_committed”值可以看出,事務“240659、240660、240661”并發(fā)運行,并同時提交,事務“240662”稍后提交。即在主庫上,事務“240659、240660、240661”同時執(zhí)行,事務“240662”隨后執(zhí)行。
2、備庫事務運行
從應用邏輯出發(fā),事務“240659”與“240662”是有執(zhí)行次序的,不能同時執(zhí)行。但基于mysql主從并發(fā)復制機制,并從備庫復制出錯信息看出,事務“240659、240660、240661、240662”在備庫上是并發(fā)執(zhí)行的,最終導致事務“240662”在執(zhí)行時,由于事務“240659”還沒執(zhí)行完而找不到記錄“call_swftno=2018052713390100901288006”的錯誤。
3、備庫記錄查詢
在備庫上查詢“240662”事務更改所對應的記錄,發(fā)現(xiàn)對應記錄“call_swftno=2018052713390100901288006”存在,說明了事務“240659”在事務“240662”執(zhí)行出錯后,成功執(zhí)行完成。
重啟mysql主從復制線程,主從復制恢復正常,繼續(xù)進行數(shù)據(jù)同步。
主庫上短時間內(nèi)有執(zhí)行次序的相關操作,在從庫上被基于并發(fā)主從復制的機制變更成了并發(fā)操作,導致了有依賴操作的事務出現(xiàn)“找不相關記錄”錯誤。
所有機房內(nèi)mysql主從復制配置都一致,但IDC機房內(nèi)的數(shù)據(jù)是由前臺業(yè)務系統(tǒng)產(chǎn)生的,具有一定的時間間隔,沒產(chǎn)生這種現(xiàn)象,而淮安機房內(nèi)的數(shù)據(jù)是由雙中心同步軟件同步產(chǎn)生的,短時間內(nèi)產(chǎn)生大量有操作依賴的事務,便產(chǎn)生了上述錯誤現(xiàn)象。
Mysql參數(shù)“slave_preserve_commit_order“可以控制Slave上的binlog提交順序和Master上的binlog的提交順序一樣,保證GTID的順序。該參數(shù)只能用于開啟了logicalclock并且啟用了binlog的復制。即對于多線程復制,該參數(shù)用來保障事務在slave上執(zhí)行的順序與relaylog中的順序嚴格一致。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/130160.html
摘要:哨兵是社區(qū)版本推出的原生高可用解決方案,部署架構主要包括兩部分集群和數(shù)據(jù)集群,其中集群是由若干節(jié)點組成的分布式集群。自研推薦推薦自研的高可用解決方案,主要體現(xiàn)在配置中心故障探測和的處理機制上,通常需要根據(jù)企業(yè)業(yè)務的實際線上環(huán)境來定制化。 最近很多朋友向我咨詢關于高可用的方案的優(yōu)缺點以及如何選擇合適的方案線上使用,剛好最近在給宜人貸,光大銀行做企業(yè)內(nèi)訓的時候也詳細講過,這里我再整理發(fā)出來...
摘要:哨兵是社區(qū)版本推出的原生高可用解決方案,部署架構主要包括兩部分集群和數(shù)據(jù)集群,其中集群是由若干節(jié)點組成的分布式集群。自研推薦推薦自研的高可用解決方案,主要體現(xiàn)在配置中心故障探測和的處理機制上,通常需要根據(jù)企業(yè)業(yè)務的實際線上環(huán)境來定制化。 最近很多朋友向我咨詢關于高可用的方案的優(yōu)缺點以及如何選擇合適的方案線上使用,剛好最近在給宜人貸,光大銀行做企業(yè)內(nèi)訓的時候也詳細講過,這里我再整理發(fā)出來...
摘要:編輯器編輯器背景編輯器前段時間遇到一個線上問題,后來排查好久發(fā)現(xiàn)是因為主從同步延遲導致的,所以今天寫一篇文章總結一下這個問題希望對你有用。編輯器幾句嘮叨編輯器大家好,我是小飯,一枚后端工程師。背景前段時間遇到一個線上問題,后來排查好久發(fā)現(xiàn)是因為主從同步延遲導致的,所以今天寫一篇文章總結一下這個問題希望對你有用。如果覺得還不錯,記得加個關注點個贊哦思維導圖思維導圖常見的主從架構隨著日益增長的訪...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20