在前面的文章里面,我在自己的环境中,搭建了一个MHA的架构:

当时,这个MHA中只包含一个MySQL的主从架构。
而MHA的架构本身不止于只管理一个MySQL主从架构,所以,本文将演示,如何让MHA接管新的MySQL主从架构。

一、MHA Node:新的MySQL主从架构
总体的配置这里不重复说明,详情可以参阅下面的文章:

需要注意的是,新的MySQL主从架构中,最初的主库的server_id需要为:10

如下:
主库:

从库:

否则可能会报错:

MySQL的用户权限的配置:
用户:root(所有节点)。
grant all privileges on *.* to root@‘10.158.1.94’ identified by ‘********’; #10.158.1.94,是我的MHA Manager

# MHA Node
grant all privileges on *.* to root@‘10.158.1.149’ identified by ‘********’;
grant all privileges on *.* to root@‘10.158.1.174’ identified by ‘********’;

用户:replme(MHA Node节点)
grant replication slave on *.* to ‘replme’@’10.158.1.173’ identified by ‘************’;
grant replication slave on *.* to ‘replme’@’10.158.1.174’ identified by ‘************’;

如果这里的权限没有设置好,那么会出现这样的问题:
1. repleme,设置不正确会导致MySQL Replication(主从)架构的同步不正常
2. root,配置不正确,会导致:

SSH等价关系:
MHA Manager 与 MHA Node 互信。
ssh-copy-id -i .ssh/id_rsa.pub 10.158.1.94
这一部分,在MHA的搭建文档中已经有提到过,不重述。

软件包安装(MHA Node节点):
YUM安装:mha4mysql-node的软件包。

如果你没有在MHA Node安装上面的软件包,那么你会遇到下面的错误:

这一部分,YUM的具体配置,MHA的搭建文档中也有过提及,不重述。

————————————————
如果,顺利完成了上面的步骤,那么MHA的MySQL这一部分的配置就完成了。

二、MHA Manager:配置

默认配置文件:

对于上面的这个问题件,要注意:
对于同一个MHA,MySQL的口令最好一样。
这样,默认的配置文件跟应用配置文件就可以很好的分开。

如果没有办法做到这一点,那么,默认配置与应用配置就要写成一个文件。

在我的环境中,可以看到我是分开管理的,因此我所有的被MHA管理的MySQL的口令都是一样的。

应用配置文件:
masterha_application_1.cnf,这是之前的搭建文档配置的应用配置文件:

/etc/masterha_application_2_149_174.cnf,是本次(本文)新增的MySQL主从架构:

这样,MHA的配置的新增操作就完成了。

三、MHA测试:
测试SSH等价关系:

测试MySQL Replication(主从):

四、部署增强脚本
这一部分会跟之前的搭建文档不一样。
在搭建文档中,只涉及到一个MySQL主从,所以增强脚本只需要过滤一个manager即可。
而在现在的环境中,我们有两个MySQL主从,如果再用以前的方法过滤MHA Manager上的manager进程,将会列出所有的manager进程,影响所有的MHA接管的MySQL Replication。

先停掉当前的增强脚本:
杀掉【sh call_do_mha.sh】的进程,即可。

过滤方法:

新的脚本:
文件:do_mha.sh
使用方法:do_mha.sh

文件:call_do_mha.sh

启动新的MHA增强脚本:

五,测试:新的增强脚本:

首先看看当前的两个MySQL主从的状态:
应用1:

可以看到:

应用2:

可以看到:

测试:停掉当前的主库的服务
应用1:

应用2:

可以看到,上面的服务被停掉之后,就自己起来了。(这是如预期的)

再次查看MySQL主从的状态

应用1:

可以看到:

应用2:

可以看到:

都做了切换。

当前,MHA Manager的manager服务状态:

至此,为MHA新增MySQL Replication(主从),完成。

——————————————
Done。

2 thoughts on “MHA,增加管理群集(MySQL Replication[主从])+ 新的增强脚本”

  1. Keep Alive不是必须的,但是有更好,… 上面的描述中,缺少的这一部分的描述,其实和搭建文档中的做法一样。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

隐藏
变装