Categories: Linux筆記

MYSQL REPLICATION SLAVE 自動修復策略

MYSQL REPLICATION SLAVE 常常莫名其妙出現錯誤
尤其是Slave_IO_Running NO 這個問題網路上所有解決方法沒有一個正確。
只好自己想辦法了。
目前我自己的MySQL主機是三台,連線方向是A→B→C

解決辦法:
1.寫一個定時檢查三個DB資料列的script放在A主機內,發現不一樣的時候,自動呼叫 repair.sh
2.執行repair.sh進行修復。

repair.sh的內容
1.先停止A主機的mysql 利用mysql shutdown
2.呼叫 stop_other_mysql.sh 停止其他兩台的MySQL。由於會用到ssh登入,將使用except對話方式ssh 登入其他兩台Server,因此stop_other_mysql.sh 另外寫,不放在bash裡面。
3.刪除BC主機內,mysql/var/ 裡面目錄型態以外的全部檔案,以及要備份的DB目錄也要刪除。(本段語法可同時寫在stop_other_mysql.sh中)
4.呼叫 rsync_mysql.sh 開始進行 ssh登入B主機,使用rsync同步A主機的DB,接著再登入C主機,rsync同步A主機的DB。
5.刪除A主機內,mysql/var/ 裡面目錄型態以外的全部檔案。
6.啟動A主機的MySQL
7.呼叫 start_other_mysql.sh 啟動其他兩台的MySQL。理由同上述第二點.

打完收工!

 

P.S 至於 當MySQL停擺時,主機該怎麼提供服務?那又是另外一個故事了

yan

Share
Published by
yan