Mysql 5.7 MHA高可用架构的实现

实验环境:

     Server3(172.25.17.3):master

     Server4(172.25.17.4):备用master

     Server5(172.25.17.5):slave

     Servre6(172.25.17.6):mha管理端

一   环境搭建:

1.在server3,server4、server5端安装mysql并配置密码。将server3作为主库,server4和server4作为从库,以GTID模式实现一主两从。(之前博客有具体操作)

2.在server3端安装node节点(yum 或rpm安装)并生成密钥分发给server4和server5,目的是为了主库和从库之间的免密连接):

3.在备用主机server4端安装node节点生成密钥发送给server3和server5,开启从设备。

在server4端创建授权用户:

4.在slave主机server5端安装node节点并生成密钥发送给server3和server4,然后开启从设备:

在server5端创建授权用户:

5.在mha主机server6端,将以下两个脚本放到/usr/local/bin目录下:

之后安装以下包安装包,包括管理节点包、node节点包以及依赖包,并生成密钥发送给server3、server4和server5:

生成密钥并发送给server3、server4、server5:

6.在server6端建立mha工作目录和配置文件所在目录:

在/etc/mha目录下新建配置文件:

包括对于工作目录,日志 保存位置、和主、备、从机的设定

7.配置文件编辑完成之后保存退出,检查各设备之间ssh免密连接是否搭建成功:

在末尾会显示ssh是否搭建成功:

二  主从机之间的配置:

1.在server3、server4和server5端添加半同步插件:

2.编辑配置文件/etc/my.cnf:

Server3、server4和server5端的server-id不同,其他都一样。

需要注意的是,一定要先进入数据库添加插件再编辑配置文件,否则会因为没有插件而导致配置文件里如下图中的39,40行找不到对象的服务而导致数据库重启失败。或者也可以先将这两行注释掉然后开启数据库添加插件,添加之后再取消掉注释。

3.在server4和server5端开启read_only :

在这里需要注意的是,开启只读模式只能在数据库里设定而不能写在配置文件中。否则当主库server3服务挂掉之后备用主机server4接替服务,还会是只读模式。而作为主库是不能只读的。

4.在三台mysql主机给复制用户和root用户授权:

5.在server6端通过masterha_check_repl脚本查看整个集群的状态:

状态检查没有问题:

6.查看manager状态:

此时服务没开启:

开启manager服务:

服务当前工作在server3上:

三 测试:

1.在server3端ps ax查看后台进程,kill  -9 关闭数据库进程:

关闭进程:

服务跳到server4端:

2.此时server4成为master主机,可以在server4端查看主机状态:

在从机server5端,查看slave状态:Master_Host由172.25.17.3变成172.25.17.4。表示服务接管成功。

猜你喜欢

转载自blog.csdn.net/letter_A/article/details/81586058