閱讀874 返回首頁    go 阿裏雲 go 技術社區[雲棲]


MHA failover流程

MHA manager啟動後,啟動流程以及failover流程如下:


1. 啟動前準備情況

2. 檢查數據庫服務器狀態,獲取相關的配置參數

3. 測試SSH連接是否成功

4. 測試MHA node是否可用

5. 開始檢查SLAVE的差異日誌應用權限

6. 確定當前的複製架構

7. 調試master_ip_failover_script腳本

8. 調試shutdown_script

9. 設置二次檢查的主機masterha_secondary_check

10. MHA啟動完畢,進入檢測過程

11. 檢測到MASTER掛了

12. 通過定義的二次檢測,確認MASTER是否真的掛了

13. 確認MASTER掛了,開始執行failover流程

14. 再次嚐試連接MASTER和MASTER 的SSH

15. 再次檢查SLAVE的配置是否有變化,是否符合failover條件

16. 正式開始failover

17. 再次對SLAVE的配置做檢查

18. 對原Master的master_ip_failover_script和shutdown_script的做操作,關閉SSH或者關閉數據庫

19. 開始做差異日誌的恢複,獲取SLAVE最後得到的binlog位置

20. 獲取原MASTER的binlog日誌

21. 確定新的MASTER

22. 在新的MASTER上應用差異的binlog日誌

23. 獲取新MASTER的binlog位置

24. 如果有master_ip_failover,那麼給新master設置VIP或者設置域名

25. 開始回去其他SLAVE,也是從原MASTER的binlog對比來做恢複

26. 差異日誌應用完畢後,切換所有的slave到新MASTER

27. failover操作完成,生成failover報告

28. master manager退出



其中:

    

#master_ip_failover_script:
首先啟動的時候會調用這個腳本--檢測status
/opt/master_ip_failover_script.sh –command=status –ssh_user=root –orig_master_host=192.168.153.150 –orig_master_ip=192.168.153.150 –orig_master_port=3306
然後在正式failover過程中的第二步,Dead Master Shutdown Phase階段會在次執行。  第18步,綜合shutdown_script關閉數據庫或者服務器
/opt/master_ip_failover_script.sh –orig_master_host=192.168.153.150 –orig_master_ip=192.168.153.150 –orig_master_port=3306 –command=stopssh –ssh_user=root
在正式failover過程中的第3.4步驟中(選舉新的master以後,應用差異的binlog後),會再次執行。在第24步,執行VIP或者域名切換操作
/opt/master_ip_failover_script.sh –command=start –ssh_user=root –orig_master_host=192.168.153.150 –orig_master_ip=192.168.153.150 –orig_master_port=3306 –new_master_host=192.168.153.151 –new_master_ip=192.168.153.151 –new_master_port=3306 –new_master_user=’mha’ –new_master_password=’mha’


#shutdown_script:
首先啟動的時候會執行這個腳本,執行時間緊跟著master_ip_failover_script第一次執行後麵
/opt/shutdown_script.sh –command=status –ssh_user=root –host=192.168.153.150 –ip=192.168.153.150
第二次執行是在master_ip_failover_script第二次執行後麵
/opt/shutdown_script.sh –command=stopssh –ssh_user=root –host=192.168.153.150 –ip=192.168.153.150 –port=3306

#report_script=”" //通知腳本
在masterha_manager自動切換完成的最後會調用一次這個腳本。
report_script.sh –orig_master_host=(dead master’s hostname) –new_master_host=(new master’s hostname) –new_slave_hosts=(new slaves’ hostnames, delimited by commas) –subject=(mail subject) –body=(body)


#master_ip_online_change_script:
在使用masterha_master_switch –conf=/etc/app1.cnf –master_state=alive –new_master_host=192.168.153.151主動切換mysql master的時候會調用.
在online切換的第二階段,拒絕寫入原master的時候執行。
/opt/master_ip_online_change_script.sh –command=stop –orig_master_host=192.168.153.150 –orig_master_ip=192.168.153.150 –orig_master_port=3306 –orig_master_user=’mha’ –orig_master_password=’mha’ –new_master_host=192.168.153.151 –new_master_ip=192.168.153.151 –new_master_port=3306 –new_master_user=’mha’ –new_master_password=’mha’
然後會在new master上執行
/opt/master_ip_online_change_script.sh –command=start –orig_master_host=192.168.153.150 –orig_master_ip=192.168.153.150 –orig_master_port=3306 –orig_master_user=’mha’ –orig_master_password=’mha’ –new_master_host=192.168.153.151 –new_master_ip=192.168.153.151 –new_master_port=3306 –new_master_user=’mha’ –new_master_password=’mha’


最後更新:2017-10-13 23:04:04

  上一篇:go  【雲棲大會】AliOS總裁胡曉明:非智聯網汽車將成為古董
  下一篇:go  Go語言與數據庫開發:01-07