MHA 日常管理,mha管理
MHA是眾多使用MySQL資料庫企業高可用的不二選擇,它簡單易用,功能強大,實現了基於MySQL replication架構的自動主從容錯移轉。本文主要描述MHA的日常相關操作,同時給出了關於MHA的相關串連,供大家參考。
一、MHA的主要指令碼(perl)
1.manager端
masterha_check_ssh 檢查MHA的SSH配置狀況
masterha_check_repl 檢查MySQL複製狀況
masterha_manger 啟動MHA
masterha_check_status 檢測當前MHA運行狀態
masterha_master_monitor 檢測master是否宕機
masterha_master_switch 控制容錯移轉(自動或者手動)
masterha_conf_host 添加或刪除配置的server資訊
2.node端
save_binary_logs 儲存和複製master的二進位日誌
apply_diff_relay_logs 識別差異的中繼日誌事件並將其差異的事件應用於其他的slave
filter_mysqlbinlog 去除不必要的ROLLBACK事件(MHA已不再使用這個工具)
purge_relay_logs 清除中繼日誌(不會阻塞SQL線程)
二、日常操作
1.校正ssh等效驗證
$ masterha_check_ssh --conf=/etc/masterha/app1.cnf
2.校正mysql複製
$ masterha_check_repl --conf=/etc/masterha/app1.cnf
3.啟動mha監控,在master故障時開啟自動轉移
$ nohup masterha_manager --conf=/etc/masterha/app1.cnf > /tmp/mha_manager.log < /dev/null 2>&1 &
###當有slave節點宕掉的情況是啟動不了的,加上--ignore_fail_on_start即使有節點宕掉也能啟動mha
$ nohup masterha_manager --conf=/etc/masterha/app1.cnf --ignore_fail_on_start > /tmp/mha_manager.log < /dev/null 2>&1 &
4.檢查啟動的狀態
$ masterha_check_status --conf=/etc/masterha/app1.cnf
5.停止mha
$ masterha_stop --conf=/etc/masterha/app1.cnf
6.多次failover
MHA在每次failover切換後會在管理目錄組建檔案app1.failover.complete ,下次在切換的時候如果由於間隔時間太短導致切換不成功,應手動清理掉。
rm -rf /var/log/masterha/app1/app1.failover.complete
或者通過加上參數--ignore_last_failover來忽略
7.手工failover
手工failover情境,適用於在master死掉,而masterha_manager未開啟情形,如下,指定--master_state=dead
masterha_master_switch --conf=/etc/masterha/app1.cnf --dead_master_host=192.168.1.6 --master_state=dead --new_master_host=192.168.1.7
--ignore_last_failover
8.手動線上切換,如下,指定--master_state=alive
masterha_master_switch --conf=/etc/masterha/app1.cnf --master_state=alive --new_master_host=192.168.1.6 --orig_master_is_new_slave
masterha_master_switch --conf=/etc/masterha/app1.cnf --master_state=alive --new_master_host=192.168.1.6 --orig_master_is_new_slave
--running_updates_limit=10000
--orig_master_is_new_slave
表明在切換時原master變為新master的slave節點
--running_updates_limit=10000
切換時候選master如果有延遲的話,mha切換不能成功,加上此參數表示延遲在此時間範圍內都可切換(單位為s),
但是切換的時間長短是由recover時relay日誌的大小決定
其他注意事項
手動線上切換mha,切換時需要將在啟動並執行mha停掉後才能切換。
在備庫先執行DDL,一般先stop slave,一般不記錄mysql日誌,可以通過set SQL_LOG_BIN = 0實現。
然後進行一次主備切換操作,再在原來的主庫上執行DDL。這種方法適用於增減索引,如果是增加欄位就需要額外注意。
可以通過如下命令停止mha:masterha_stop --conf=/etc/masterha/app1.cnf
三、MHA相關參考
MySQL MHA簡介及其優點
MySQL MHA 典型使用情境
MHA安裝及等效性配置
MHA 設定檔樣本描述
MySQL MHA配置常見問題
MHA masterha_check_repl 檢測過程
MHA VIP切換指令碼
MHA 自動容錯移轉步驟及過程剖析
MHA 線上切換過程
MHA 切換的2個異常(masterha_master_switch line 53)
MHA 手動容錯移轉