MySQL高可用之MHA搭建
2016-08-24 13:37
489 查看
测试环境
节点1 | 172.16.200.231 | 6666 | master |
节点2 | 172.16.200.27 | 6666 | slave1 |
节点3 | 172.16.200.60 | 5200 | slave2 |
安装软件包
节点3:安装MHA-managerwget http://www.mysql.gr.jp/frame/modules/bwiki/index.php?plugin=attach&pcmd=open&file=mha4mysql-manager-0.56-0.el6.noarch.rpm&refer=matsunob[/code] |
yum -y install perl-DBD-MySQL |
wget http://www.mysql.gr.jp/frame/modules/bwiki/index.php?plugin=attach&pcmd=open&file=mha4mysql-manager-0.56-0.el6.noarch.rpm&refer=matsunobu[/code] |
yum -y install perl-DBD-MySQL yum -y install perl-Config-Tiny yum -y install perl-Log-Dispatch yum -y install perl-Parallel-ForkManager |
配置
[root@python /]# cat /etc/mha/test.cnf [server default] # working directory on the manager manager_workdir=/var/log/masterha/test # manager log file manager_log=/var/log/masterha/test/test.log # working directory on MySQL servers remote_workdir=/var/log/masterha/test master_binlog_dir=/data0/mysql/6666_test repl_user=repl repl_password='repl' ssh_user=root [server1] hostname=172.16.200.231 port=6666 user=root password='' [server2] hostname=172.16.200.60 port=5200 user=root password='' [server3] hostname=172.16.200.27 port=6666 user=root password=''
注:gtid模式可以设置[binlog1]模块,此处已开启gtid模式但是没有设置binlog server
Requirement
SSH认证candidate masters要开启log-bin
关闭自动清理relay log的选项,改为定期使用MHA note提供的脚本purge_relay_logs手动进行
0 5 * * * app /usr/bin/purge_relay_logs --user=root --password=PASSWORD --disable_relay_log_purge >> /var/log/masterha/purge_relay_logs.log 2>&1
Do not use LOAD DATA INFILE with Statement Based Binary Logging
If you want to use LOAD DATA, SET sql_log_bin=0; LOAD DATA … ; SET sql_log_bin=1; is more recommended approach.
都需要有复制账号
验证
masterha_check_ssh --conf=/etc/mha/test.cnf masterha_check_repl --conf=/etc/mha/test.cnf |
检查通过之后启动manager
masterha_manager --conf=/etc/mha/test.cnf |
masterha_check_status --conf=/etc/mha/test.cnf test (pid:20483) is running(0:PING_OK), master:172.16.200.231 |
开始演练测试
手动failover,需要先关闭manager 监控
masterha_stop --conf=/etc/mha/test.cnf masterha_master_switch --master_state=dead --conf=/etc/mha/test.cnf |
过程:
检查是否存在全局配置文件/etc/masterha_default.cnf读取指定的配置文件,监测各节点的数据库状态以及GTID是否开启
FLUSH NO_WRITE_TO_BINLOG TABLES
检查复制状态
检查配置文件中是否指定candidate masters
如果没有指定,则将应用日志最新的slave提升为master
old master上执行FLUSH TABLES WITH READ LOCK
获得old master上的当前的binlog文件号和position
new master应用中继日志到和old master数据一致
其他的slave应用所有的中继日志
其 他的slave指向new master:CHANGE MASTER TO MASTER_HOST='172.16.200.60', MASTER_PORT=5200, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='xxx';
相关文章推荐
- MySQL5.6基于MHA方式高可用搭建
- 搭建MySQL高可用架构MHA
- mysql5.6基于GTID模式之高可用架构搭建-MHA(mha0.56)
- Mysql高可用架构MHA搭建及测试故障转移
- centos下mysql高可用架构MHA搭建及测试故障转移 推荐
- Mysql-MHA高可用实验测试-主从复制搭建
- MySQL高可用架构之基于MHA的搭建
- MySQL高可用之MHA的搭建
- mysql高可用MHA架构搭建
- centos6.4下mysql高可用架构MHA搭建
- Mysql_MHA高可用架构搭建
- maxscale配合MHA搭建读写分离的高可用架构(基于GTID replication主从架构,mysql5.6)
- CentOS6.4搭建mysql高可用架构MHA
- 搭建mysql高可用架构mha
- 搭建mysql负载均衡及高可用环境
- keepalived结合MHA实现mysql高可用
- 搭建MySQL负载均衡及高可用环境
- 搭建mysql负载均衡及高可用环境
- MySQL高可用系列之MHA(一)
- MySQL高可用方案一(MHA)