CentOS6.8下MySQL MHA架构搭建笔记
以下是CentOS6.8下MySQL MHA架构搭建笔记
IP资源规划:
192.168.206.140 slave01(备用master)
192.168.206.141 slave02
192.168.206.142 manager
192.168.206.145 VIP
一、准备工作:
1.关闭Selinux
[root@localhost ~]# reboot
2.关闭防火墙
[root@localhost ~]# service iptables stop
3.安装epel yum源
[root@localhost tmp]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
4.安装MHA node所需的perl模块(DBD:mysql)
二、Replication搭建
1.建立replication用户(master和slave01)
2.建立MHA管理用用户
3.安装半同步复制插件
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
4.修改my.cnf配置文件
5.master备份slave还原(略),查找master Binlog位置
6.各slave上执行脚本,建立主从配置。(MySQL5.7可以直接使用master_auto_position=1参数)
mysql> start slave;
三、开始安装配置
1.各节点使用ssh-keygen实现三台机器之间相互免密钥登录
[root@localhost .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.206.140
[root@localhost .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.206.141
[root@localhost .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.206.142
2.所有节点(包括manager)下载安装mha4mysql-node-0.56
由于google被墙,我是直接从网上下载的rpm文件,具体下载过程略。
确认安装内容
3.manager节点安装mha4mysql-manager-0.56
确认安装内容
4.在manager节点管理MHA配置文件
前面采用yum安装的,没有samples文件夹,所以另外down了一份mha4mysql-manager-0.56.tar.gz包(具体过程略)
复制代码
[root@localhost tmp]# cd mha4mysql-manager-0.56
[root@localhost mha4mysql-manager-0.56]# mkdir -p /etc/mha/{app1,scripts}
[root@localhost mha4mysql-manager-0.56]# cp -r samples/conf/* /etc/mha/
[root@localhost mha4mysql-manager-0.56]# cp -r samples/scripts/* /etc/mha/scripts/
[root@localhost mha4mysql-manager-0.56]# mv /etc/mha/app1.cnf /etc/mha/app1/
[root@localhost mha4mysql-manager-0.56]# mv /etc/mha/masterha_default.cnf /etc/masterha_default.cnf
复制代码
5.在manager上设置全局配置
修改master_ip_failover脚本,添加VIP漂移相关三个参数
修改master_ip_online_change脚本,添加VIP漂移相关三个参数
修改masterha_default.cnf全局配置
创建日志目录:
配置app1.cnf:
6.验证安装内容
验证ssh信任
验证主从复制
四、启动MHA、测试MHA故障转移
启动MHA
或者采用后台启动
配置master的VIP
确认VIP
确认MHA启动状态:
进程确认:
关闭MHA Manager监控:
主动切换之交互模式
重新将旧的master加入复制,指向新的master
mysql> start slave;
主动切换之非交互模式:
Master192.168.206.140宕机模式下切换主从: