一路走來,所有遇到的人,幫助過我的、傷害過我的都是朋友,沒有一個是敵人。如有侵權,請留言,我及時刪除!
一、MHA軟件構成
Manager工具包主要包括以下幾個工具:
masterha_manger 啟動MHA
masterha_check_ssh 檢查MHA的SSH配置狀況
masterha_check_repl 檢查MySQL復制狀況
masterha_master_monitor 檢測master是否宕機
masterha_check_status 檢測當前MHA運行狀態
masterha_master_switch 控制故障轉移(自動或者手動)
masterha_conf_host 添加或刪除配置的server信息Node工具包主要包括以下幾個工具:
這些工具通常由MHA Manager的腳本觸發,無需人為操作
save_binary_logs 保存和復制master的二進制日志
apply_diff_relay_logs 識別差異的中繼日志事件并將其差異的事件應用于其他的
purge_relay_logs 清除中繼日志(不會阻塞SQL線程)
二、安裝軟件
配置網絡YUM源
https://www.cnblogs.com/dgp-zjz/p/11266234.html
1、下載mha軟件
mha官網:https://code.google.com/archive/p/mysql-master-ha/
github下載地址:https://github.com/yoshinorim/mha4mysql-manager/wiki/Downloads
2、所有節點安裝Node軟件依賴包
yum install perl-DBD-MySQL -y
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
3、db01節點創建用戶
?db01 [mysql]>grant all privileges on *.* to mha@'%' identified by 'mha';
?
4、Manager軟件安裝(db03)生產中會部署在另一臺主機。
yum install -y perl-Config-Tiny epel-release perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
rpm -ivh mha4mysql-manager-0.56-0.el6.noarch.rpm
5、配置文件準備(db03)
root@mysql03 ~]# vi /etc/mha/app.cnf?
[server default]
manager_log=/var/log/mha/app/manager
manager_workdir=/var/log/mha/app
master_binlog_dir=/data/binlog
user=mha
password=mha
ping_interval=2
repl_password=123456
repl_user=slave
ssh_user=root
[server1]
hostname=192.168.10.20
port=3306
[server2]
hostname=192.168.10.30
port=3306
[server3]
hostname=192.168.10.40
port=3306
6、信任關系檢查
[root@mysql03 /]# ? masterha_check_ssh ?--conf=/etc/mha/app.cnf
7、主從關系檢查
[root@mysql03 /]# masterha_check_repl ?--conf=/etc/mha/app.cnf?
8、啟動MHA
[root@mysql03 ~]# ?nohup masterha_manager --conf=/etc/mha/app.cnf --remove_dead_master_conf --ignore_last_failover ?< /dev/null> /var/log/mha/app/manager.log ?2>&1 &
檢查MHA狀態
[root@mysql03 ~]# masterha_check_status --conf=/etc/mha/app.cnf
三、MAH集群維護命令
1、?查看MHA狀態
[root@mysql03 ~]# masterha_check_status --conf=/etc/mha/app.cnf
2、MAH成員檢查
3、重啟MHA集群
masterha_stop --conf=/etc/mha/app1.cnf
nohup masterha_manager --conf=/etc/mha/app.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/app/manager.log 2>&1 &
[root@mysql03 ~]# masterha_stop --conf=/etc/mha/app.cnf
[root@mysql03 ~]# masterha_check_status --conf=/etc/mha/app.cnf