MHA 日常管理

來源:互聯網
上載者:User

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 VIP切換指令碼 

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.