pt-table-checksum檢測MySQL主、從數據的一致性

1、pt-table-checksum其原理是,在主庫執行校驗語句(binlog格式爲STATEMENT),通過sql複製傳遞到從庫,如果數據不一致,則主、從會產生不同的校驗值,以此來判斷主從數據是否一致。

注意:在從庫裏檢查校驗結果,複製的sql也是在主庫裏執行,結果會學到從庫的表裏

通過這個sql,檢查結果 

SELECT db, tbl, SUM(this_cnt) AS total_rows, COUNT(*) AS chunks FROM checksum_mengyao WHERE (master_cnt <> this_cnt OR master_crc <> this_crc OR ISNULL(master_crc) <> ISNULL(this_crc)) GROUP BY db, tbl;

一些常用的參數:

參數說明:
--replicate              //選擇哪個庫下創建checksums表,並將數據寫入到表中,這個表,在校驗數據一致性時,默認是被忽略的
--ignore-tables                     //忽略某張表
--replicate-check-only             //結果只顯示數據不一致的表
--no-check-binlog-format           //不檢查複製的binlog模式,要是binlog模式是ROW,則會報錯。
--empty-replicate-table            //在校驗每個表之前,刪除之前存在校驗信息表的該表的校驗數據,該選項不會TRUNCATE整個表,而只是在校驗每個表之前,刪除該表相關的校驗數據。
–replicate-check-retries           //當發現某個表的校驗結果不一致時,對該表進行重複校驗的次數。只有當經過這些次數的校驗後,還存在的不一致的校驗信息才作爲最終的結果。
–recursion-method                //指定搜索從庫的遞歸方法

 

學習參考鏈接:https://tyoung.me/2016/09/usage_of_pt-table-checksum_and_replication_consistency_check/

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章