做過mysql主從維護都知道,一旦出現主從不同步后比較麻煩,而跳過錯誤的方法可能會導致數據的不一致,這對于需要嚴格數據一致性的應用要求來說是不可接受的,手工方式重新做同步步驟比較多,以下方法是通過一個工具來完成一致性修復的問題,可以大大節省時間。
Percona Toolkit
使用工具
Percona Toolkit:官網鏈接
安裝
- 依賴安裝
<pre>
yum install -y perl-DBI perl-DBD-MySQL perl-Time-HiResperl-IO-Socket-SSL
</pre> - 工具安裝
<pre>
wget percona.com/get/percona-toolkit.rpm
rpm -Uvh percona-toolkit.rpm
</pre> - 創建日志數據庫
根據官網文檔創建數據表結構 ,示例中:test.checksums 為記錄結果的表。
通過工具獲取優化建議
- 分析mysql配置并建議:pt-variable-advisor --user=root localhost
- 慢查詢日志分析:pt-query-digest/data/DB/mysql/mysql-slow.log(具體路徑有所不同)
常規檢查
- mysql服務狀態: pt-mysql-summary--host=localhost --user=root
- 主從狀態監測: pt-slave-find --host=localhost --user=root
- mysql死鎖監測: pt-deadlock-logger--host=localhost --user=root
一致性檢查
-
pt-table-checksum --replicate=test.checksums--host=localhost --user=root --databases=test
檢查結果
一致性修復
-
pt-table-sync--execute --replicate=test.checksums --charset=utf8 h=localhost u=root
修復結果
注:同步前做好相應備份工作,并且避開業務高峰期操作。
整理于2014/04