MySQL MHA高可用架构主要用于:
监控主数据库服务器是否可用
当主DB不可用时,从多个从服务器中选举出新的主数据库服务器
提供了主从切换和故障转移功能
配置步骤
首先参考MySQL主从复制的中基于GTID复制的配置方法配置三台服务器
1.建立主从复制群,MHA可同时支持基于日志点和基于GTID的主从复制,推荐采用基于GTID的主从复制(MMM仅支持基于日志点的主从复制)
主:192.168.0.131
从1:192.168.0.7
从2:192.168.0.9(监控服务器)
2.配置集群内所有主机的SSH免认证登陆
ssh-keygen #生成密钥 ssh-copy-id -i /root/.ssh/id_rsa '-p 22 root@192.168.0.131' #配置本机免登录 ssh-copy-id -i /root/.ssh/id_rsa '-p 22 root@192.168.0.7' #配置从服务器免登录 ssh-copy-id -i /root/.ssh/id_rsa '-p 22 root@192.168.0.9' #配置从服务器免登录
在每台机器上都进行相同的操作
安装MHA-node软件包和MHA-manager软件包
首先安装Perl软件包
yum -y install perl-DBD-MySQL ncftp perl-DBI.x86
各服务上器安装MHA Node
rpm -ivh mha4mysql-node-0.57-0.el7.noarch.rpm
链接: http://pan.baidu.com/s/1i4Bwlhz 密码: ev2c (安装包地址)
监控服务器上(从2)安装以下软件包:
yum -y install perl-Config-Tiny.noarch perl-Time-HiRes.x86_64 perl-Parallel-ForkManager perl-Log-Dispatch-Perl.noarch perl-DBD-MySQL ncftp
然后在监控服务器上安装 MHA Manager
rpm -ivh mha4mysql-manager-0.57-0.el7.noarch.rpm
链接: http://pan.baidu.com/s/1pLpfBxL 密码: m2wk (安装包地址)
3.配置MHA管理节点
在监控服务器上创建文件夹
mkdir -p /etc/mha #mha配置文件夹
mkdir -p /home/mysql_mha #工作目录(所有主从服务器上均创建)
主服务器上创建用户
grant all privileges on *.* to mha@’192.168.0.%’ identified by ‘123456’;
监控服务器上MHA配置文件(/etc/mha/mysql_mha.cnf)
[server default] user=mha password=123456 manager_workdir=/home/mysql_mha manager_log=/home/mysql_mha.log remote_workdir=/home/mysql_mha ssh_user=root repl_user=repl repl_password=123456 ping_interval=1 master_binlog_dir=/var/lib/mysql #可在主服务器上通过show variables like '%log%'查询 master_ip_failover_script=/usr/bin/master_ip_failover #可选 secondary_check_script=/usr/bin/masterha_secondary_check -s 192.168.0.131 -s 192 .168.0.7 -s 192.168.0.9 [server1] hostname=192.168.0.131 candidate_master=1 [server2] hostname=192.168.0.7 candidate_master=1 [server3] hostname=192.168.0.9 no_master=1
master_ip_failover脚本:
链接: http://pan.baidu.com/s/1nu64t3z 密码: 9xic
下载的脚本仅需修改上面的$vip变量
4.使用masterha_check_ssh和masterha_check_repl对配置进行检验
ssh免登录检测
masterha_check_ssh –conf=/etc/mha/mysql_mha.cnf
检测完比显示All SSH connection tests passed successfully.
复制环境检测
masterha_check_repl –conf=/etc/mha/mysql_mha.cnf
检测完成返回MySQL Replication Health is NOT OK!
5.启动并测试MHA服务(监控服务器)
nohup masterha_manager --conf=/etc/mha/mysql_mha.cnf &
通ps -ef可发现MHA已在后台运行
接下来在主服务器上配置虚拟IP
ifconfig eth0:1 192.128.0.100/24
测试:
关闭主服务器MySQL服务进行测试,进入从1查看IP地址有没有虚拟IP,再去从2中show slave status \G查看有没有正常切换