首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

重置 MySQL 主從同步完整操作指南

     編輯:MySQL 綜合教學

重置主從同步的適用場景

當主從同步因各種原因導致資料不一致,且常規修復方法難以徹底解決時,重置主從服務雖非最快,但最安全有效。

環境假設

  • Master 與 Slave 均為 CentOS 6.0 + MySQL 5.1.61
  • 需熱備 db1、db2 兩個資料庫
  • 操作均使用 root 帳號(生產環境請依實際權限調整)

詳細操作步驟

1. 停止 Slave 同步服務

STOP SLAVE;

2. 鎖定 Master 資料庫防寫入

FLUSH TABLES WITH READ LOCK;

或停止 Web 服務(Apache/Nginx)達到同樣效果。

3. 備份 Master 資料

mysqldump -u root -p --databases db1 db2 > bak.sql

4. 重置 Master 服務

RESET MASTER;

此指令會刪除所有二進制日誌,僅保留一個空的 .000001 日誌檔。注意:執行此指令會導致 Slave 找不到原 binlog,同步中斷,但這正是重置同步所需。

5. 解鎖 Master 資料庫

UNLOCK TABLES;

6. 將備份檔傳輸至 Slave

scp -r root@Master_IP:/root/bak.sql ./

7. 刪除 Slave 舊資料

DROP DATABASE db1;
DROP DATABASE db2;

8. 匯入備份資料

SOURCE /root/bak.sql;

9. 重置 Slave 服務

RESET SLAVE;

此指令會清除同步位置、刪除舊 relay log、建立新 relay log。必須先執行 STOP SLAVE(步驟 1 已完成)。

10. 啟動 Slave 同步

START SLAVE;

驗證同步狀態

SHOW SLAVE STATUS\G

確認 Slave_IO_Running 與 Slave_SQL_Running 均為 Yes 即表示同步正常。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved