192.168.189.127 master
192.168.189.128 slave
192.168.189.129 mha manager
1、在配置mha之前,先配置一主一从,主从复制
2、修改每台机器的hostname
vim /etc/hosts
192.168.189.127 p1
192.168.189.128 p2
192.168.189.129 p3
3、设置ssh公钥免密码登陆
mkdir ~/.ssh
chmod 700 ~/.ssh
cd ~/.ssh
ssh-keygen -t rsa
ls -al
cat ~/.sh/id_rsa.pub >>~/.sh/authorized_keys
ls -al
chmod 600 ~/.ssh/authorized_keys
cd ..
scp -r .ssh 192.168.189.128:/root/
scp -r .ssh 192.168.189.129:/root/
scp -r .ssh 192.168.189.127:/root/
每一台都这样设置
4、进行验证
ssh p1
ssh p2
ssh p3
5、下载mha4mysql-manager和mha4mysql-node
去Github下载
6、在三个机器都安装以下包
yum install perl-DBD-MySQL
yum install perl-DBI
yum install mysql-libs
7、在每个机器都安装node,可源码安装
tar xzvf mha4mysql-node-0.56.tar.gz
cd mha4mysql-node-0.56
perl Makefile.PL
make && make install
8、在管理节点安装manager
以上安装过程很简单,过程中缺少依赖包的话请按提示安装。
9、常用命令
/usr/local/bin/masterha_check_ssh --conf=/etc/app.cnf 启动mha
/usr/local/bin/masterha_check_repl --conf=/etc/app.cnf 监测主从复制有无问题
/usr/local/bin/masterha_manager --conf=/etc/app.cnf 启动mha进程
/usr/local/bin/masterha_check_status --conf=/etc/app.cnf 监测mha的状态
/usr/local/bin/masterha_stop --conf=/etc/app.cnf 关闭mha
10、模拟主库宕机【favior故障切换】
(1)ssh p1 "killall -r mysqld"
(2)查看管理节点日志,可以看到VIP已经漂移
cat /etc/log/manager.log |grep -i vip
(3)验证vip是否位于节点p2
ssh p2 "ifconfig |grep 189.128 -B1"
(4)查看管理节点mha切换日志
tail /etc/log/manager.log
(5)new master(old slave)
show master status\G
(6)new slave(old master)
启动mysql
检查数据库
show master status\G;
show slave status\G;
在管理节点查看主库的日志文件和位置
cat /etc/log/manager.log |grep -i change
在slave连接master
change master to .......
(7)启动管理节点
/usr/local/bin/masterha_manager --conf=/etc/app.cnf &
/usr/local/bin/masterha_manager --conf=/etc/app.cnf --ignore_last_failover &
每次failover失败后,会生成目录文件app1.failover.error
可以将此文件删除,就可以不用加ignore参数启动,不想删除,也可以使用ignore启动
(8)手工failover场景,master死掉,mha已经部署好,但是masterha_manager没有开启,可以通过手工failover:
masterha_master_switch --conf=/etc/app1.cnf
--dead_master_host=192.168.189.127 --master_state=dead --new_master_host=192.168.189.128 --ignore_last_failover