MySQL主備庫切換(MHA)演練與總結


 
演練包括被動切換和主動切換兩部分。被動切換是主庫宕機,主動切換是人工手動觸發。
 
演練步驟大致如下:
 
    1 先停掉主庫,模擬主庫宕機
    2 mha將vip切到備庫,備庫變成主庫,應用可以正常讀寫數據庫
    3 重新啟動宕機的原主庫
    4 在原主庫上建立同步關系(根據宕機時,日志記錄的binlog的文件名和偏移量,恢復從這里開始)
    5 mha手動切換主庫,還原到最初狀態,應用可以正常讀寫數據庫
    6 演練結束
 
 
演練過程問題總結:
 
1 mha每次自動切換之后都會結束自身進程,並在日志目錄如/app/mha/xxx/下生成成功或失敗標記(sys.failover.complete/error),下一次要啟動mha之前要把這些標記文件刪除,否則mha無法正常啟動,因為有了這些標記文件,mha認為已經切換結束
 
2 數據庫主機切換嚴謹做法是這個時候要把master設置為只讀,然后設置MASTER_LOG_FILE和MASTER_LOG_POS,最后啟動復制
 
3 mha手動切換要指定端口,否則只用ip會被mha認為沒有存活
 
4 數據庫主從庫要配置/etc/sudoers
Default requiretty 要注釋掉(解決"抱歉,您必須擁有一個終端來執行 sudo"的警告)
 
5  Error happened on monitoring servers
 
這個問題是沒找到mysql映射,添加軟連接即可
 
 
常用的MHA指令:
 
1 檢查mha的ssh免密登錄狀態

masterha_check_ssh --conf=/etc/mha/sys/sys.cnf

2 檢查mha的運行狀態

masterha_check_status --conf=/etc/mha/sys/sys.cnf

3 檢查主備庫的復制情況

masterha_check_repl --conf=/etc/mha/sys/sys.cnf

4 停止mha

masterha_stop --conf=/etc/mha/sys/sys.cnf

5 啟動mha

nohup masterha_manager --conf=/etc/mha/sys/sys.cnf > sys.log 2>&1 &

6 mha手動切換主庫

masterha_master_switch --conf=/etc/mha/sys/sys.cnf --master_state=alive --new_master_host=10.138.16.133 --new_master_port=3104 --orig_master_is_new_slave

7 mha重新綁定數據庫實例

sudo /etc/mha/sys/master_ip_failover --command=status --ssh_user=xxxadmin --orig_master_host=10.138.16.133 --orig_master_ip=10.138.16.133 --orig_master_port=3104


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM