1. 程式人生 > >MHA 日常維護命令集

MHA 日常維護命令集

故障轉移 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日誌的大小決定

手動在線切換mha,切換時需要將在運行的mha停掉後才能切換。在備庫先執行DDL,一般先stop slave,一般不記錄mysql日誌,可以通過set SQL_LOG_BIN = 0實現。然後進行一次主備切換操作,再在原來的主庫上執行DDL。這種方法適用於增減索引,如果是增加字段就需要額外註意。

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 日常維護命令集