一、MHA集群
(1)无密码连接
(2)配置主从(如果主机宕机那么 MHA 会在从库上选择数据最接近主库的从库 做为新的主机 另外一个自动作为新主机的从库)
(3)MHA工作过程
二、装包配置
(1)所有主机安装 MHA为perl语音写的 安装 MHA所需要的
(2)配置一主多从
(3)管理集群的命令
在管理节点上安装
perl Makefile.pl 检查perl的依赖包
(4)编辑主配置文件
需要自己创建工作目录 在源码文件中复制app1.cnf文件
[root@mgm57 ~ ]# mkdir /etc/mha //创建工作目录 [root@mgm57 ~ ]# cp mha4mysql-manager-0.56/sample/conf/app1.cnf /etc/mha/ //拷贝模板文件 [root@mgm57 ~ ]# vim /etc/mha/app1.cnf //编辑主配置文件 [server default] //管理服务默认配置 manager_workdir=/etc/mha //工作目录 manager_log=/etc/mha/manager.log //日志文件 master_ip_failover_script=/etc/mha/master_ip_failover //故障切换脚本 ssh_user=root //访问ssh服务用户 ssh_port=22 //ssh服务端口 repl_user=repluser //主服务器数据同步授权用户 repl_password=123qqq…A //密码 user=root //监控用户 password=123qqq…A //密码 [server1] //指定第1台数据库服务器 hostname=192.168.4.51 //服务器ip地址 port=3306 //服务端口 candidate_master=1 //竞选主服务器 [server2] //指定第2台数据库服务器 hostname=192.168.4.52 port=3306 candidate_master=1 [server3] //指定第3台数据库服务器 hostname=192.168.4.53 port=3306 candidate_master=1 :wq
(5)创建故障切换脚本
[root@mgm57 ~]# vim +35 /etc/mha/master_ip_failover my $vip = '192.168.4.100/24'; # Virtual IP //定义VIP地址 my $key = "1"; //定义变量$key my $ssh_start_vip = "/sbin/ifconfig eth0:$key $vip"; //部署vip地址命令 my $ssh_stop_vip = "/sbin/ifconfig eth0:$key down"; //释放vip地址命令 :wq
(6)给主服务器绑定vip(在主服务器宕机后vip会飘到下一个选举的主机上)
[root@host51 ~]# ifconfig eth0:1 //部署之前查看 eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 52:54:00:d8:10:d7 txqueuelen 1000 (Ethernet) [root@host51 ~]# ifconfig eth0:1 192.168.4.100 //部署vip地址(这个是临时的重启就没了需要永久还是在文件中配置) [root@host51 ~]# ifconfig eth0:1 //部署后查看 eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.4.100 netmask 255.255.255.0 broadcast 192.168.4.255 ether 52:54:00:d8:10:d7 txqueuelen 1000 (Ethernet)
(7)配置MySQL节点 在所有的数据库上安装MHA_node软件包
rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm
每台服务器添加监控用户(如果配置主从只需要在主库操作)
grant all on *.* to root@"%" identified by "123qqq...A";
每台服务器添加数据同步连接用户(每台服务器都可能成为主库)
grant replication slave on *.* to repluser@"%" identified by "123qqq...A";
(8)所有数据库启用半同步复制模式和 禁止自动删除所有主机上的中继日志
(9)在从库上 定义 server_id 和 binlog日志
(10)测试 ssh
(11)测试 主从同步
(12)启动管理服务
三、修复故障机器
(1)与主服务器数据一致
(2)指定主库 开启start slave
(3)在MHA配置文件中添加故障主机的信息
(4)测试ssh 和 主从同步
(5)重启 MHA