mysql 主從關係切換

需求如下圖,需要把正常的一主倆從的架構與主的級聯從互相切換

wKioL1XLAYnyTndVAAEbhAbwKyY248.jpg

這裏用到了 start slave until 這個命令


首先從 左至右做轉換調整,一主倆從轉換成級聯從,首先先stop slave左側是從機,我們暫時稱爲s1 之後,之後我們需要操作右側的從機 S2,這裏最好使用腳本執行,保證不影響線上業務,執行語句如下


mysql -uroot -p"密碼" -e "stop slave;"

 

mysql -uroot -p"密碼" -e "show master status\G"> /home/liuminkun/master.info

 

mysql -uroot -p"密碼" -e "show slave status\G"> /home/liuminkun/slave.info

 

 

mysql -uroot -p"密碼" -e "start slave;"



這樣我們在文本中就得到了,主機M的以及一臺從機的binlog和pos信,同時確認了M的binlog文件與S2的binlog文件對應關係


這時我們需要在需要轉換的級聯從的S1上執行start slave until MASTER_LOG_FILE = 'log_name', MASTER_LOG_POS = log_pos;  這裏的binlog名稱和log_pos使用剛纔在文本里得到的slave status

信息,運行到該binlog文件的pos點時候 sql thread會自動停止且io thread會繼續運行,此時只要change master to 剛纔文本中的master status信息,之後即可start slave查看下s1的同步狀態了。


反之亦然,這樣的操作可以避免通過重做mysql來完成架構切換,而且也可以解決切換後的數據一致性問題。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章