明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

mysql主從不同步問題區(qū)分

[摘要]查看叢庫狀態(tài)show slave status\G從庫原文提示:Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1...
查看叢庫狀態(tài)show slave status\G

從庫原文提示:Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction '864e6992-0a34-11e7-a98a-7cd30ac6c9ec:148408' at master log mysql-bin.000010, end_log_pos 920578920. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.

mysql主從不同步問題分析

1、 按照叢庫的提示找原因,輸入命令

select * from performance_schema.replication_applier_status_by_worker\G

得到

mysql主從不同步問題分析

知道這個事務(wù)發(fā)生在表 r_com_patent 上,定位到表,但是不知道哪一條記錄。

2、 到主庫找二進(jìn)制文件發(fā)生了什么事。輸入命令

Mysqlbinlog --no-defaults –v –v --base64-output=decode-rows /usr/local/mysql/data/master-bin.000010   grep –A ‘10’ 920578920

mysql主從不同步問題分析


終于定位到記錄了。

主庫在表r_com_patent做了更新操作,而叢庫找不到更新的記錄。

具體來說就是,主庫將表r_com_patent中patent_id為45的記錄,字段cid從NULL更改為3253026.而叢庫表r_com_patent中patent_id為45的記錄,字段cid原本為3253026,由于復(fù)制機制就必須找叢庫表r_com_patent中patent_id為45并且id為NULL的記錄,所以沒找到。。。

3、 解決方法

1) 在master查看那條記錄。

Select * from r_com_patent where patent_id = 45;

2) 在slave上,查找下更新后的那條記錄,應(yīng)該是不存在的。

  Select * from r_com_patent where patent_id = 45;

3) 把丟失的數(shù)據(jù)在Slave上填補或是修改! 

  Insert into r_com_patent values(3253026,45);

4) 在slave跳過報錯的事務(wù)。

Stop slave;
Set @@SESSION.GTID_NEXT=’ 864e6992-0a34-11e7-a98a-7cd30ac6c9ec:148408’
Begin;
Commit;
Set @@SESSION.GTID_NEXT = AUTOMATIC;
Start slave;

之后,再檢查一遍  

Show slave status\G

以上就是mysql主從不同步問題分析的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。