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

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包

[16:44:32 root@slave1 ~]$yum -y install mha4mysql-node-0.58-0.el7.centos.noarch.rpm

10.0.0.28 MySQL8.0  master安装mha4mysql-node包

[16:45:24 root@slave2 ~]$yum -y install mha4mysql-node-0.58-0.el7.centos.noarch.rpm

在所有的节点实现相互之间的ssh key验证

生成密钥

 [root@mha ~]# ssh-keygen

Copy到自己的系统

[root@mha ~]# ssh-copy-id 127.0

你可能感兴趣的:(运维,网络,运维开发)