首页 / MYSQL / MHA自动切换步骤及过程剖析
MHA自动切换步骤及过程剖析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MHA自动切换步骤及过程剖析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4122字,纯文字阅读大概需要6分钟。
内容图文
![MHA自动切换步骤及过程剖析](/upload/InfoBanner/zyjiaocheng/561/08d9f3a421e645baaf819e81682b1b1a.jpg)
MHA是众多使用MySQL数据库企业高可用的不二选择,它简单易用,功能强大,实现了基于MySQL replication架构的自动主从故障转移,本
MHA是众多使用MySQL数据库企业高可用的不二选择,它简单易用,功能强大,实现了基于MySQL replication架构的自动主从故障转移,本文主要描述了MHA自动切换的步骤,对切换过程做了演示以及进行了适当的分析,供大家参考和理解MHA以及MySQL的原理。
1、MHA自动切换的步骤
a、MHA manager启动时的校验阶段
根据配置文件校验复制配置以及识别当前的master
导致监控终止情形:复制配置异常,存在的异常slave,一些需要的脚本脚本异常
MHA manager启动前可以通过masterha_check_ssh以及masterha_check_repl检测
b、监控master server阶段
MHA manager启动成功后,输出日志[info] Ping(SELECT) succeeded, waiting until MySQL doesn't respond..
MHA会定期ping master,,缺省的间隔为1秒,直到master死掉
MHA manager不会监控slave的状态,任意的Stopping/Restarting/Adding/Removing slaves不影响当前MHA监控
当添加或移除slave节点时,建议修改配置文件以及重启MHA manager
c、侦测到master server异常阶段
3次连续ping master失败,参数secondary_check_script可用于double check
d、开启failover阶段
MHA再次读取配置文件(防止主从配置已更改),校验master以及当前masetr的从库
MHA也会校验诸如复制异常以及是否存在一些从库有不同的主
启动failover(排除上次failover失败或者failover时间间隔太短)
e.隔离master server阶段(可选)
如果配置文件定义了IP漂移脚本则此时会关闭master IP
如果配置文件定义了关闭master脚本,则调用脚本关闭master以避免脑裂
f.恢复一个新的master
从slave节点获取最新的end_log_pos (Read_Master_Log_Pos)位置
从上一步获取的位置开始,读取及保存crashed master全部二进制日志文件(ssh可达)
决定新的master(根据配置文件定义的优先级别)
产生差量的binary/relay log events并且apply到新的master
g.激活一个新的master
如果配置文件定义了IP漂移脚本则此时会将IP漂移到新master
i.恢复剩余的slave
对所有从库并行地产生差量binary/relay log events
并用apply差量binary/relay log events到各从库
启动复制
j.通过切换结果(可选)
邮件发送
备份作业,管理工具调整等
2、MHA配置信息
[root@vdbsrv4 ~]$ more /etc/masterha/app1.cnf
[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
user=mha
password=xxx
ssh_user=root
repl_user=repl
repl_password=repl
ping_interval=1
shutdown_script=""
master_ip_online_change_script=""
report_script=""
master_ip_failover_script=/tmp/master_ip_failover
[server1]
hostname=vdbsrv1
master_binlog_dir=/data/mysqldata
[server2]
hostname=vdbsrv2
master_binlog_dir=/data/mysqldata
[server3]
hostname=vdbsrv3
master_binlog_dir=/data/mysqldata/
#candidate_master=1
[root@vdbsrv1 ~]# more /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.6 vdbsrv1 #master
192.168.1.7 vdbsrv2 #slave1
192.168.1.8 vdbsrv3 #slave2
192.168.1.12 vdbsrv4 #manager
mysql> show slave hosts;
+-----------+---------+------+-----------+--------------------------------------+
| Server_id | Host | Port | Master_id | Slave_UUID |
+-----------+---------+------+-----------+--------------------------------------+
| 1001 | vdbsrv2 | 3306 | 1 | 75bef614-e342-11e4-921d-000c295fb2eb |
| 1002 | vdbsrv3 | 3306 | 1 | 091f79b8-e386-11e4-93d5-000c2943c830 |
+-----------+---------+------+-----------+--------------------------------------+
2 rows in set (0.00 sec)
3、演示切换
###开启主库VIP
[root@vdbsrv4 ~]# ssh vdbsrv1 "/sbin/ifconfig eth0:0 192.168.1.13 netmask 255.255.255.0 up"
###开启MHA manager
[root@vdbsrv4 ~]# nohup masterha_manager --conf=/etc/masterha/app1.cnf &
###使用sysbench产生事务
[root@vdbsrv1 ~]# sysbench --test=oltp \
> --oltp-table-size=5000000 \
> --oltp-read-only=off \
> --init-rng=on \
> --num-threads=16 \
> --max-requests=0 \
> --oltp-dist-type=uniform \
> --max-time=180 \
> --mysql-user=root \
> --mysql-socket=/tmp/mysql.sock \
> --mysql-password='' \
> --db-driver=mysql \
> --mysql-table-engine=innodb \
> --oltp-test-mode=complex \
> --mysql-db=replicatedb run
sysbench 0.4.12: multi-threaded system evaluation benchmark
内容总结
以上是互联网集市为您收集整理的MHA自动切换步骤及过程剖析全部内容,希望文章能够帮你解决MHA自动切换步骤及过程剖析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。