標籤:master slave 一主多從 故障切換
案例二:
一主多從的架構下,主庫master宕機
解決思路:
1,登入從庫
show processlist;
查看兩個線程的更新狀態
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/83/A1/wKioL1d46XXAm2LmAALthMC5r1I585.png" title="0003.png" alt="wKioL1d46XXAm2LmAALthMC5r1I585.png" />
結果說明:
之前主從同步正常
分別登入其餘2個從庫32,33查看:
cat /data/3306/data/master.infocat /data/3307/data/master.info
比較,那個POS最大,說明更接近主庫,那麼我們就選舉此slave作為新的master。
或者利用半同步技術,直接選舉即時同步了的這個庫為新的master
如果,master down掉,此時master還在有寫入,我們需要將master的binlog拉到新選中的slave,
進行資料補全,在把其他slave執行新選中的master,使其繼續同步。
切換步驟以及注意事項:
1,確保所有的relay_log 全部更新完畢
在每個從庫執行
stop slave io_thread;show processlist;直達看到Has read all relay log; 表示從庫更新都執行完畢;
2,登入
新選舉的master(也就是舊的一個slave),執行以下命令
stop slave;reset master;quit;
3,進入新選舉的slave資料目錄,刪除master.info relay-log.info ,防止繼續從舊的master讀資料
cd /data/3306/datarm -rf master.info relay-log.info
檢查授權表,read-only 等參數,需要刪除
4,提升次新選舉的從庫為主庫
vim /data/3306/my.cnf
開啟binlog:
log-bin = mysql-bin如果存在以下參數,一定要刪除log-slave-updatesread-only--replication-do-db --replication-ignore-db --replication-do-table --replication-ignore-table --replication-wild-do-table --replication-wild-ignore-table
重啟服務、提升主庫完畢
5,如果主程式庫伺服器沒宕,需要去主庫拉去binlog,補全主庫的從庫
6,其他從庫操作
檢查(同步user,rep均存在,意思就是保證其他slave有許可權串連新的master)
登入slave:
stop slavechange master to master_host=‘new_master_ip‘;如果不同步,就指定POSstart slave;show slave status\G;
++++++++++++主庫宕機切換成功
7,修改程式設定檔,將之前的masterIP更換為新的masterIP
重啟服務
本文出自 “crazy_sir” 部落格,請務必保留此出處http://douya.blog.51cto.com/6173221/1795367
MySQL主從複製故障案例二