MySQL主從複製之主庫宕機處理
主庫宕機 Master DOWN 機-企業場景一主多從宕機從庫切換主繼續和從同步過程詳解
登陸從庫,show processlist;
查看兩個線程的更新狀態;
查看所有從庫中,查看
/application/mysql-5.6.20/data/mysql.info;
確保更新完畢,看看兩個從庫中哪個庫最快,經過測試沒有延遲的情況POS差距很小,甚至一致的;
然後選取其中POS最大的作爲主庫;
1、確保所有relay log 全部更新完畢
在每個從庫上執行 stop slave io_thread; show processlist;
直到看到Has read all relay log;表示從庫更新執行完畢:
2、登陸POS值最大的從庫執行如下命令:
mysql -uroot -p123456 -S /application/mysql-5.6.20/mysql.sock
stop slave;
retset master;
quit;
3、進到數據庫數據目錄,刪除master.info relay-log.info
cd /application/mysql-5.6.20/data
rm -f master.info relay-log.info
檢查授權表,read-only等參數
4、提升從庫爲主庫
vim /application/mysql-5.6.20/my.cnf
開啓:
log-bin = /application/mysql-5.6.20/mysql-bin
//如果不存在log-slave-updates read-only等一定要註釋掉它。
/application/mysql-5.6.20/mysql restart
到此爲止,提升主庫完畢。
5、如果主庫服務器沒宕機,需要去主庫binlog補全,提升主庫爲從庫
6、其他從庫操作
已檢查(同步user rep均存在)
登陸從庫
stop slave
cahnge master to master_host='10.0.0.7; // 如果不同步,就指定位置點
start slave;
show slave status\G
7、修改程序的配置文件從主數據庫到從數據庫(現在新的主庫)
平時訪問數據庫用域名,則直接可以修改hosts解析
8、修理損壞的主庫,完成後作爲從庫使用,或者切換
我們現在講的是主庫意外宕機,例如我們有計劃切換,怎麼做呢?
1)主庫鎖表
2)登陸所有的庫查看同步狀態,是否完成
後面操作與前面同1至4步驟