跳過 MySQL replication 失敗的方法...

MySQL replication 發生錯誤後,需要一邊 skip replication error,一邊跑 pt-table-sync 強制資料庫同步:

while true; do ( echo 'SET GLOBAL sql_slave_skip_counter = 1; START SLAVE;' | mysql -h $1 ) || sleep 1; done

那個 sleep 1 的設計是用在「如果 replication 正常,停一下再跑一次」的前提下而設計的;如果不需要的話拿掉也是 okay 的。

要注意,能這樣跑的前提是 max_connect_errors 要開超大,我是設成 max_connect_errors = 4294967295

This entry was posted in Computer, Database, Murmuring, MySQL, Network, Software and tagged , , , , , , , . Bookmark the permalink.

2 Responses to 跳過 MySQL replication 失敗的方法...

  1. Ken Chen says:

    可是這樣就要冒著 slave 和 master 最後資料會不一樣的結果...

    我覺得把可以容忍的錯誤,放在 my.cnf 的 slave-skip-errors=xxxx,其餘錯誤,還是人工處理比較妥當。

  2. 這是跑 pt-table-sync 的時候用的,不會有你說的問題。

Leave a Reply

Your email address will not be published. Required fields are marked *