MHA 日常維護命令集
阿新 • • 發佈:2017-09-14
故障轉移 show tar manager one less 命令集 efault 決定 MHA 日常維護命令集
1.查看ssh登陸是否成功
masterha_check_ssh --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf
2.查看復制是否建立好
masterha_check_repl --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf
3.啟動mha
nohup masterha_manager --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf > /tmp/mha_manager.log< /dev/null 2>&1 &
master去執行:
#sh /etc/masterha/init_vip.sh
確認VIP綁定成功,如果業務按VIP配置的訪問DB,應該已經可以正常訪問。
註意:
第一次起動,主庫上的VIP不會自動綁定,需要手功調用init_vip.sh 去綁定,主庫發生故障切換會進行vip的漂移。
當有slave節點宕掉的情況是啟動不了的,加上--ignore_fail_on_start即使有節點宕掉也能啟動mha
nohup masterha_manager --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf --ignore_fail_on_start> /tmp/mha_manager.log< /dev/null 2>&1 &
需要在配置文件中設置ignore_fail=1
4.檢查啟動的狀態
masterha_check_status --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf
5.停止mha
masterha_stop --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf
6.failover後下次重啟每次failover切換後會在管理目錄生成文件app1.failover.complete ,下次在切換的時候會發現有這個文件導致切換不成功,需要手動清理掉。
rm -rf /masterha/app1/app1.failover.complete也可以加上參數--ignore_last_failover
7.手工failover手工failover場景,master死掉,但是masterha_manager沒有開啟,可以通過手工failover:
masterha_master_switch --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf --dead_master_host=old_ip --master_state=dead --new_master_host=new_ip --ignore_last_failover
8.masterha_manager是一種監視和故障轉移的程序。另一方面,masterha_master_switch程序不監控主庫。masterha_master_switch可以用於主庫故障轉移,也可用於在線總開關。
9.手動在線切換masterha_master_switch --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf --master_state=alive --new_master_host=192.168.199.78--orig_master_is_new_slave
或者masterha_master_switch --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1.conf --master_state=alive --new_master_host=192.168.199.78-orig_master_is_new_slave--running_updates_limit=10000
--orig_master_is_new_slave切換時加上此參數是將原master變為slave節點,如果不加此參數,原來的master將不啟動
--running_updates_limit=10000 切換時候選master如果有延遲的話,mha切換不能成功,加上此參數表示延遲在此時間範圍內都可切換(單位為s),但是切換的時間長短是由recover時relay日誌的大小決定
Online master switch開始只有當所有下列條件得到滿足。
1. IO threads on all slaves are running // 在所有slave上IO線程運行。
2. SQL threads on all slaves are running //SQL線程在所有的slave上正常運行。
3. Seconds_Behind_Master on all slaves are less or equal than --running_updates_limit seconds // 在所有的slaves上Seconds_Behind_Master 要小於等於running_updates_limit seconds
4. On master, none of update queries take more than --running_updates_limit seconds in the show processlist output // 在主上,沒有更新查詢操作多於running_updates_limit seconds 在show processlist輸出結果上。
手動在線切換mha,切換時需要將在運行的mha停掉後才能切換。在備庫先執行DDL,一般先stop slave,一般不記錄mysql日誌,可以通過set SQL_LOG_BIN = 0實現。然後進行一次主備切換操作,再在原來的主庫上執行DDL。這種方法適用於增減索引,如果是增加字段就需要額外註意。
MHA 日常維護命令集