UUID(), NOW())從庫下線 → 停應用 → 重新全量同步。資料量龐大時極其耗時、風險高。
官方工具套件,含 pt-table-checksum(檢測不一致)、pt-table-sync(修復同步),可在線非阻塞式解決主從數據漂移。
yum -y install perl-Time-HiRes wget https://www.percona.com/downloads/percona-toolkit/2.2.13/tarball/percona-toolkit-2.2.13.tar.gz tar -zxvpf percona-toolkit-2.2.13.tar.gz cd percona-toolkit-2.2.13 perl Makefile.PL make make install
主從雙方 my.cnf 設定:
binlog_format=ROW
| 格式 | 優點 | 缺點 |
|---|---|---|
| STATEMENT | 日誌量小,IO 少,效能高 | 非確定性函數(sleep, last_insert_id, UDF)導致主從不一致 |
| ROW | 記錄每行實際變更,內容清晰,避免函數/觸發器復制問題 | 大量更新/ALTER TABLE 產生海量日誌 |
| MIXED | 一般用 STATEMENT,特殊情況自動切 ROW | 判斷邏輯複雜,行為難預測 |
建議:為確保 pt-table-checksum/sync 準確性,強烈建議使用 ROW 格式。
