前面我们了解了mha管理一组主从,然而在实际生产环境中不同的应用会使用不同的数据库,因此会有多组主从复制,我们可以使用一个mha manager 来管理多组主从复制数据库。我们只需要创建一个全局配置文件,你可以将这几组中相同的配置信息写到全局配置文件中,如用户名、密码等,而其他的配置信息单独写到每个app*.cnf中。
官网介绍:
https://code.google.com/p/mysql-master-ha/wiki/Configuration
下面我们就来介绍下:
mha架构:
如上:我们使用一个mha manager节点来管理3组主从复制,我这面只配置两组,每组具体的配置请参考前面的博文,在此只介绍重点。
10.10.10.59 mha manager
APP1:
10.10.10.56 master
10.10.10.57 slave1
10.10.10.58 slave2
10.10.10.60 vip
APP2:
10.10.10.61 master
10.10.10.62 slave1
10.10.10.63 slave2
10.10.10.64 vip
1.创建全局配置文件masterha_default.cnf
mkdir -p /etc/mha cp /usr/local/src/mha4mysql-manager-0.56/samples/conf/masterha_default.cnf /etc/mha/ ln -s /etc/mha/masterha_default.cnf /etc/masterha_default.cnf #将相同的配置信息写到全局配置文件中 [root@rd-mysql-test4 mha]# cat masterha_default.cnf [server default] master_binlog_dir=/data/mysql password=123456 ping_interval=1 remote_workdir=/tmp repl_password=123456 repl_user=rep report_script=/usr/local/bin/send_report ssh_port=22 ssh_user=root user=mha注意:masterha_default.cnf一定要在/etc下,否则检查过程中会找不到这个文件,为将所有的mha相关配置文件放在一起方便管理,我做了软连接。
app1.conf
[root@rd-mysql-test4 mha]# cat /etc/mha/app1.cnf [server default] manager_log=/var/log/masterha/app1/manager.log manager_workdir=/var/log/masterha/app1 master_ip_failover_script=/usr/local/bin/master_ip_failover_app1 master_ip_online_change_script=/usr/local/bin/master_ip_online_change_app1 [server1] hostname=10.10.10.56 port=3306 [server2] candidate_master=1 check_repl_delay=0 hostname=10.10.10.57 port=3306 [server3] hostname=10.10.10.58 port=3306app2.conf
[root@rd-mysql-test4 mha]# cat /etc/mha/app2.cnf [server default] manager_log=/var/log/masterha/app2/manager.log manager_workdir=/var/log/masterha/app2 master_ip_failover_script=/usr/local/bin/master_ip_failover_app2 master_ip_online_change_script=/usr/local/bin/master_ip_online_change_app2 [server1] hostname=10.10.10.61 port=3306 [server2] candidate_master=1 check_repl_delay=0 hostname=10.10.10.62 port=3306 [server3] hostname=10.10.10.63 port=3306注意:每个应用的master_ip_failover_script和master_ip_online_change_script对应的脚本不一样,因为我们在迁移过程中使用vip来达到高可用的目的,master_ip_failover在自动failover过程中使vip会自动漂移,而master_ip_online_change在在线迁移过程中使vip漂移。因此在多个主从复制组我们使用多个不同的脚本来管理不同的ip。
3.检查ssh配置
masterha_check_ssh --conf=/etc/mha/app1.cnf
masterha_check_ssh --conf=/etc/mha/app2.cnf
注:(1)全局配置文件在检测过程中会自动检查,如果找不到全局配置文件,就会读取指定的应用配置文件。
(2)每个主从复制组都需要和mha manager节点配置ssh无密码登录,但组与组之前不要配置。
4.检查replication配置
masterha_check_repl --conf=/etc/mha/app1.cnf
masterha_check_repl --conf=/etc/mha/app2.cnf
5.启动监控
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover /var/log/masterha/app1/manager.log 2>&1 &
nohup masterha_manager --conf=/etc/mha/app2.cnf --remove_dead_master_conf --ignore_last_failover /var/log/masterha/app1/manager.log 2>&1 &