下载包

https://github.com/yoshinorim/mha4mysql-node
https://github.com/yoshinorim/mha4mysql-manager

安装

安装EPEL
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm(也可自行下载后进行安装)

安装依赖包
yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes

安装MHA组件
根据角色进行安装,测试环境可全部安装,方便切换主机进行测试
[root@zst2 tools]# yum localinstall mha4mysql-manager-0.57-0.el7.noarch.rpm
[root@zst2 tools]# yum localinstall mha4mysql-node-0.57-0.el7.noarch.rpm

关于MySQL准备

每个MySQL 节点都需要建立互信

关于relay_log 的清理
由于MHA在非GTID模式下运行时,在failover时slave同新master进行同步时用的relay日志不全(apply_diff_relay_logs),因此就不能开启relay_log_purge功能(清理使用过的relay_log)。去要调用MHA自带的purge_relay_logs 命令进行清理

设置定时任务处理relay_log
cat purge_relay_log.sh

  1. #!/bin/bash
  2. user=root
  3. passwd=unixfbi
  4. port=3306
  5. log_dir='/data/masterha/log'
  6. work_dir='/data'
  7. purge='/usr/local/bin/purge_relay_logs'
  8. if [ ! -d $log_dir ]
  9. then
  10. mkdir $log_dir -p
  11. fi
  12. $purge --user=$user --password=$passwd --disable_relay_log_purge --port=$port --workdir=$work_dir >> $log_dir/purge_relay_logs.log 2>&1

设置定时任务.

  1. # crontab -l
  2. 0 4 * * * /bin/bash /root/purge_relay_log.sh

关于用户准备
共需要三个用户
该用户配置在app1.conf中(本MHA资料中都将global_default.conf 合并在了app1.conf中)设定
ssh_user= 需要登录主机服务器尽量为mysql用户,注意可能需要sudo权限
user= 用来进行数据恢复时使用可以给all privileges 权限
repl_uer= 主从复制用户
(详情请参考2.配置文件&脚本介绍)

VIP的绑定准备

可以使用keepalived,也可以使用MHA自带的切换VIP功能,但是由于MHA在第一次启动的时候不会自动绑定VIP,因此需要在启动MHA前手动绑定VIP,后续可由MHA进行自动切换
可写一个脚本或手动执行

  1. [root@zst2 mha]# cat /etc/masterha/init_vip.sh
  2. vip="172.0.0.100/24"
  3. /sbin/ip addr add $vip dev ens32

参考文档

https://blog.csdn.net/leshami/article/details/45688503 http://www.unixfbi.com/278.html https://www.jianshu.com/p/6173dae5ed7a