天天看點

mysql主從切換維護時的幾點注意

   随着業務量的不斷增加,資料庫的壓力總是會越來越大的,如果是要對mysql資料庫的硬體更新,勢必是要對mysql主從做切換,mysql的主從複制的結構如果不借助第三方工具時做mysql的高可用,要做主從的切換是要做停機維護手動切換的,這裡就以普通的一主一從的結構中簡單的說一說mysql資料庫主從切換的幾個要注意的點:

   1、server id以前看見很多人在做主從切換的時候沒有注意到這一點,導緻slave IO報錯,包括自己也有過,這個還是要稍微注意下,尤其是在mysql的大規模叢集下

   2、在主從切換中master沒有鎖表或者是slave中設定了read only沒有關,或者是主從的複制沒有結束就開始停止slave IO,這個問題也是比較常見的問題,尤其是在有大量innodb引擎下的比較繁忙的資料庫,許多事務沒有送出,就貿然的操作往往會導緻資料的丢失以及主從複制的資料不一緻,這個還是尤為重要的,在維護時要先在slave等一段時間,等從庫中“show full processlist;”看下線程中看見“has read all relay log”slave已讀取所有的relay log後,再到master中做”flush tables with read lock;”,要注意的是在此時master不要退出目前的session,不然鎖表就失敗了,先查下目前的master狀态,并且記錄下“show master status\G”,而在salve中此時就要檢查下是否有開啟read only“show global variables like 'read_only';”如果是有開着則要關閉“set global read_only = 0;”

   3、在停止主從複制後,沒有清除掉相關的原master或原slave的資訊,這個問題如果沒有注意也會帶來新主從的失敗,在原先的slave中先清理掉所有的slave資訊再設定成主庫“reset slave all;reset master;”,當然如果在原先salve上沒有開啟binlog那麼改成主庫後要開啟,至于原的master改成slave如果不是需要的話可以把binlog關閉,并且開啟read only

剩下的步驟就和做主從複制是一樣的了,在此就不做過多的贅述了。

轉載于:https://blog.51cto.com/jim123/1908203