实现MySQL的高可用性MHA集群架构

本文介绍了如何使用MHA(Master High Availability)配合MySQL主从架构实现数据库的高可用性。MHA通过监控主节点健康状况,当主节点故障时,会选择数据最全的从节点作为新主,并同步数据到其他从节点。文中详细阐述了MHA的工作逻辑、选举新主的策略以及MHA集群的搭建步骤,包括安装软件、配置SSH密钥、设置MySQL配置和创建VIP等。
摘要由CSDN通过智能技术生成

MySQL的主从能解决读操作的可用性,如果从节点挂掉,也可以通过其他从节点继续提供读的操作,但是主节点的单点问题没有解决,因此在日常生产中会利用MHA配合主从架构来实现数据库的高可用。

MHA工作逻辑:

MHA会利用Select 1 As Value指令判断master服务器的健康性,一旦master down机之后,MHA从down机崩溃的master中把二进制日志保存下来,然后判断有最新数据更新的slave,

数据最全的slave应用中继日志的数据差,把差异数据同步到其他slave上,使之与其数据保持一致

应用从master上保存的二进制日志同步到所有slave节点上

这样所有节点上的数据都是一致的,

提升一个slave为新的master

使其他的slave连接新的master进行复制

故障master将被踢出集群,清除配置信息

MHA是一次性高可用性解决方案,只防止一次性的损坏,提升主节点之后即退出

选举新的master

如果设定权重candidate_master=1,按照权重强制指定新主,但是默认情况下如果一个slave落后master二进制日志超过100M的relay logs,即使有权重也会失效,如果设置check_repl_delay=0,即使落后很多日志,也会强制选择其为新主

如果slave节点数据之间有差异,最接近master的slave会成为新主

如果所有slave节点的数据都一致,按照配置文件顺序最前面的当新主

注意:为了尽可能的减少master服务器硬件损坏down机造成的数据丢失,因此在配置MHA的同时建议配置成MySQL的半同步复制

实现MHA集群架构:

10.0.0.7   manager(安装mha4mysql-manager包和mha4mysql-node包)

mha4mysql-manager包只兼容mysql5.7和mysql8.0,但和centos8上的mariaDB10.3不兼容

10.0.0.8   MySQL8.0  master(安装mha4mysql-node包)

10.0.0.18  MySQL8.0  slave1(安装mha4mysql-node包)

10.0.0.28  MySQL8.0  slave2(安装mha4mysql-node包)

10.0.0.7 manager安装mha4mysql-manager包和mha4mysql-node包

[root@mha ~]# yum -y install mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

[root@mha ~]# yum -y install mha4mysql-node-0.58-0.el7.centos.noarch.rpm

10.0.0.8 MySQL8.0  master安装mha4mysql-node包

[16:43:25 root@master ~]$yum -y install mha4mysql-node-0.58-0.el7.centos.noarch.rpm

10.0.0.18 MySQL8.0  master安装mha4mysql-node包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值