您好,登錄后才能下訂單哦!
這篇文章主要講解了“mha日常維護命令總結”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“mha日常維護命令總結”吧!
1.查看ssh登陸是否成功 masterha_check_ssh --conf=/etc/masterha/app1.cnf
2.查看復制是否建立好 masterha_check_repl --conf=/etc/masterha/app1.cnf
3.啟動mha nohup masterha_manager --conf=/etc/masterha/app1.cnf > /tmp/mha_manager.log < /dev/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/2>&1 &
4.檢查啟動的狀態 masterha_check_status --conf=/etc/masterha/app1.cnf
5.停止mha masterha_stop --conf=/etc/masterha/app1.cnf
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 --conf=/etc/masterha/app1.cnf --dead_master_host=10.50.2.10 --master_state=dead --new_master_host=10.50.2.12 --ignore_last_failover
8.masterha_manager是一種監視和故障轉移的程序。另一方面,masterha_master_switch程序不監控主庫。 masterha_master_switch可以用于主庫故障轉移,也可用于在線總開關。
9.手動在線切換 masterha_master_switch --conf=/etc/app1.cnf --master_state=alive --new_master_host=192.168.119.74 --orig_master_is_new_slave 或者 masterha_master_switch --conf=/etc/app1.cnf --master_state=alive --new_master_host=192.168.119.74 --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。這種方法適用于增減索引,如果是增加字段就需要額外注意。 可以通過如下命令停止mha masterha_stop --conf=/etc/app1.cnf
常用參數介紹:
--master_state=dead 強制的參數,參數值為"dead" 或者 "alive" . 如果 設置為 alive 模式,masterha_master_switch 開始在線主庫切換操作。 --dead_master_host=(hostname) 強制參數,宕機的主庫所在的主機名稱。--dead_master_ip 和 --dead_master_port 是可選參數,如果這些參數沒有設置,--dead_master_ip 就是 --dead_master_host 解析的IP地址。--dead_master_port 為 3306 --new_master_host=(hostname) 新主機地址,可選參數,這個參數在你明確新的主庫的主機,非常有用。(這就意味著你不需要讓MHA來決定新的主庫)。如果不設置此參數,MHA 將會利用自動failover的規則來選擇新的主庫。如果設置--new_master_host,MHA選擇此主機為新的主庫,如果不能成為主庫,MHA將會退出 --interactive=(0|1) 如果設置為0,在masterha_master_switch,它自動執行故障轉移(非交互式)。這實際上是和masterha_manager的內部運行機制一樣,這種非交互式故障轉移是有用的,如果你已經證實了master死了,但你想盡快做故障轉移。非交互式故障轉移也是有用的,如果你使用其他現有的主監控軟件和要調用的非交互式故障轉移命令軟件。典型的例子是masterha_master_switch調用從集群軟件像起搏器。 --ssh_reachable=(0|1|2) 指定master 經過SSH是否可達。0:不可達、1:可達、2:未知(默認值)。 如果設置為了2,此命令內部將會檢測通過SSH 是否可達master,并且跟新SSH 狀態。如果可達,且設置master_ip_failover_script 或者 shutdown_script .將會執行"--command=stopssh"。否則,執行 "--command=stop"。另外,如果宕機的master通過SSH可達,failover腳本試圖從宕機的master機器上拷貝沒有沒有發送的binlog。 --skip_change_master 如果設置此參數,當發生failover的時候,MAH 在應用完不同的relay log退出,忽略CHANGE MASTER 和 START SLAVE 操作。所以 slaves 不會指向 新的master. 開啟此參數,有利于手動的二次檢查slave 恢復是否成功 --skip_disable_read_only 設置此參數,MHA 將不會在新的主庫上執行 SET GLOBAL read_only =0 操作,有利于手動操作 --last_failover_minute=(minutes) 參考master_manager --ignore_last_failover 參考master_manager --wait_on_failover_error=(seconds) 類似于master_manager, 此參數只用于自動的/非交互式的failover。如果沒有設置--interval=0,wait_on_failover_error 將會被忽略,在發生錯誤的時候不會sleep。 --remove_dead_master_conf 參考masterha_manager --wait_until_gtid_in_sync(0|1) 此參數從0.56版本開始可用,如果設置成1,當基于GITD的failover時,MHA 會等待所有的從庫追上新主庫的GITD --skip_change_master 此參數從0.56版本開始可用,如果開啟此選項,MHA 跳過 CHANGE MASTER 的操作 --skip_disable_read_only 此參數從0.56版本開始可用,如果開啟此選項,MHA 將會在新的master 跳過 SET GLOBAL read_only = 0; --ignore_binlog_server_error 此參數從0.56版本開始可用,如果開啟此選項,當執行failover的時,MHA忽略binlog server上任何錯誤非交互式Failover
如果在masterha_master_switch中設置"--interactive=0", 它自動執行故障轉移(非交互式)。這實際上是和masterha_manager的內部運行機制一樣,這種非交互式故障轉移是有用的,如果你已經證實了master死了,但你想盡快做故障轉移。非交互式故障轉移也是有用的,如果你使用其他現有的主監控軟件和要調用的非交互式故障轉移命令軟件。典型的例子是masterha_master_switch調用從集群軟件像起搏器。[在線] 切換主庫的開關 (Scheduled (Online) Master Switch)
有時你可能想做預定的主切換,即使當前的master正在運行。典型的例子是取代部分損壞的硬件或升級主服務器。你不能取代一個RAID控制器或增加內存沒有停止服務器。在這種情況下,您需要分配一個預定的維護時間,你必須遷移到不同的服務器的master。 masterha_master_switch命令可以用來運行計劃總開關。 $ masterha_master_switch --master_state=alive --conf=/etc/app1.cnf --new_master_host=host2 --master_state=alive必須設置。調度主開關的程序流與從主故障轉移有稍微的不同。例如,你不需要關閉主服務器,但你需要確保寫查詢不在主上執行。通過設置主ip網上變更腳本,您可以控制阻塞當前master不允許寫(即drop可寫的用戶,設置read_only = 1,等等)在執行FLUSH TABLES WITH READ LOCK,和如何讓寫在新master。 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輸出結果上。 這些限制的原因是出于安全原因,并盡快切換到新主庫。masterha_master_switch需要以下參數切換時主在線。 --new_master_host=(hostname) 新主機地址,可選參數,這個參數在你明確新的主庫的主機,非常有用。(這就意味著你不需要讓MHA來決定新的主庫)。如果不設置此參數,MHA 將會利用自動failover的規則來選擇新的主庫。如果設置--new_master_host,MHA選擇此主機為新的主庫,如果不能成為主庫,MHA將會退出 --orig_master_is_new_slave 當完成主庫切換后,原先的主庫將作為現在主庫的slave運行。默認:不開啟(原先的主庫不會加入到新的復制環境中)。如果開啟此選項,需要在配置文件中設置repl_password參數,由于當期的Master并不知道新的Master的replication的密碼 --remove_orig_master_conf 如果設置此參數,當成功failover后,MHA manager將會自動刪除配置文件中關于dead master的配置選項。 --skip_lock_all_tables 當在做主庫切換的時候,MHA會在原先的主庫上執行FLUSH TABLES WITH READ LOCK 操作,確保沒有跟新操作,但是FLUSH TABLES WITH READ LOCK 操作是非常耗費資源的,并且你可以在原先的主庫確定沒有跟新操作(通過master_ip_online_change_script 中kill all clients操作等)。可以利用此選項避免鎖表。
感謝各位的閱讀,以上就是“mha日常維護命令總結”的內容了,經過本文的學習后,相信大家對mha日常維護命令總結這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。