問題:Binlog文件自動清理導致同步中斷。爲修復 syncer 服務進行了 binlog 補齊及 FLUSH LOGS 操作觸發 MySQL 5.7 高版本軟件兼容性問題。
通常我們遇到MySQL主從數據庫同步不一致時,我們會做一下操作:
- 拷貝 binlog 備份至主庫 binlog 目錄
- 修改 mysql-bin.index 文件,追加新拷貝的 binlog 日誌
- 修改文件屬組爲 mysql
- 執行 flush logs 刷新日誌狀態
MySQL 5.7 高版本解決方案
MySQL 5.7 高版本遇到MySQL主從數據庫同步不一致時,我們必須要這樣做:
- 拷貝 binlog 備份至主庫 binlog 目錄
- 修改 mysql-bin.index 文件,追加新拷貝的 binlog 日誌
- 修改文件屬組爲 mysql
- 執行 flush logs 刷新日誌狀態
- 所有從庫執行 reset slave
- 重新 CHANGE MASTER AUTO_POSITION=1
- 所有從庫執行 start slave
這個是MySQL 5.7 高版本的一個系統Bug,可以通過運維技術手段進行避免。