下载包
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
#!/bin/bashuser=rootpasswd=unixfbiport=3306log_dir='/data/masterha/log'work_dir='/data'purge='/usr/local/bin/purge_relay_logs'if [ ! -d $log_dir ]thenmkdir $log_dir -pfi$purge --user=$user --password=$passwd --disable_relay_log_purge --port=$port --workdir=$work_dir >> $log_dir/purge_relay_logs.log 2>&1
设置定时任务.
# crontab -l0 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进行自动切换
可写一个脚本或手动执行
[root@zst2 mha]# cat /etc/masterha/init_vip.shvip="172.0.0.100/24"/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
