1、虚拟机服务器环境架构
虚拟机名称 | ip地址 |
主库服务器 | 192.168.92.132 |
从库服务器1 | 192.168.92.133 |
从库服务器2 | 192.168.92.134 |
MHA | 192.168.92.135 |
2、安装需要的依赖包
1)以上所有服务器都需要安装
安装yum扩展包
wget http://mirrors.sohu.com/fedora-epel/epel-release-latest-7.noarch.rpm
yum install -y epel-release-latest-7.noarch.rpm
安装依赖
yum list perl-DBD-MySQL ncftp perl-DBI
yum install -y perl-DBD-MySQL ncftp perl-DBI
2)只需要MHA 服务器安装
监控服务器安装依赖包
yum install -y perl-Config-Tiny.noarch perl-Time-HiRes.x86_64 perl-Parallel-ForkManager perl-Log-Dispatch.noarch
3、安装MHA节点软件包
1)所有服务器需要安装
wget https://qiniu.wsfnk.com/mha4mysql-node-0.58-0.el7.centos.noarch.rpm
rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm
2)只MHA服务器安装
安装监控软件包
wget https://qiniu.wsfnk.com/mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
4、配置各个服务器之间可免密登录
配置manager和node各节点间的root用户的ssh公钥互信
1)以下命令所有服务器都需要执行
ssh-keygen -t rsa 一直默认回车安装就可以
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.92.132
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.92.133
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.92.134
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.92.134
2)检测是否成功
输入其他服务器的地址检测 ssh root@192.168.92.134,不用输入密码即可登录成功。
5、配置MHA Manager 端配置文件
mkdir /etc/mha/;
vi app1.cnf;
根据自己的用户名密码,ip地址等配置。
注意:红线部分必须写,不能随意更改。
6、MHA 配置检测
执行ssh通信检测
在MHA Manager服务器上执行:masterha_check_ssh --conf=/etc/mha/app1.cnf
执行结果如图表示成功。
检测MySQL主从复制
在MHA Manager服务器上执行:masterha_check_repl --conf=/etc/mha/app1.cnf
如下图表示成功
7、启动MHA
启动执行
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &
查看监控状态
masterha_check_status --conf=/etc/mha/app1.cnf
查看监控日志
tail -f /var/log/mha/app1/manager.log
8、服务器故障测试
将主库服务器停止 systemctl stop mysqld
然后在MHA服务器查询日志 tail -f /var/log/mha/app1/manager.log
可以看到原来的主库服务器由原来的 192.168.92.132 变为 192.168.92.133。
在另外一台从库查询状态,可以看到master服务器表更为新的主库服务器。
以上完成全部故障测试。
9、主服务器故障后恢复
恢复 systemctl start mysqld
将恢复的主库做从库 change master to master_host='192.168.92.133',master_port=3306,master_user='root,master_password='root',master_log_file='mysql-bin.000003',master_log_pos=154;
启动 start slave;
新主库可查询到两台从库。