MySQL主從異常恢復


說明

MySQL主從出現不同步的情況時,或者要添加新的從庫時,可以使用以下方法進行操作回復主從。

停止業務應用

停止所有連接到主從庫上的應用,在恢復主從期間禁止任何增刪改等操作,否則恢復失敗

停止主從服務

進入slave節點,停止主從服務

$ mysql> stop slave;

處理從庫數據

處理從庫數據主要有兩種情況:

  • 從庫中的數據比主庫多

這種情況需要先找出從庫比主庫多的數據,將這些數據添加到主庫中

  • 主庫的數據比從庫的數據多

這種情況可以直接刪除從庫的所有數據,然后再將主庫的數據復制一份到從庫

如果從庫所在的容器已經不能正常啟動,可以考慮刪除容器再重新創新新的容器

復制主庫數據到從庫中

從庫數據處理完成后,將從庫的數據全部刪除掉,然后將主庫的數據復制一份到從庫中

主庫數據並不僅僅是表數據,還包含用戶等數據

查詢主庫當前日志位置

登陸主庫的mysql,使用以下命令查詢主庫當前的二進制日志文件名字以及位置

$ docker exec –it mysql /bin/bash

$ mysql –uroot –p

$ mysql>show master status;

記錄File和Position的值,后面需要使用

創建主庫和從庫的連接

進入從庫

$ docker exec –it mysql /bin/bash

$ mysql –uroot –p

使用以下命令創建主庫和從庫的連接

mysql>change master to master_host='172.16.86.100', master_user='slave', 
master_password='Bjcr.123_MySQL', master_port=3306, master_log_file='mysql-bin.000065', 
master_log_pos= 998883537, master_connect_retry=30;

重啟slave

使用下面的命令,啟動slave

$  mysql>start slave

使用以下命令查詢主從狀態

$ show slave status \G;

出現下圖所示的情況即為主從創建成功:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM