MHA集群

一.MHA集群

MHA master high avavibility 主服务器高可用

如上图所示,我们之前说过,如果在主从复制架构中主服务器出现故障,就需要我们将从服务器作为主服务器,等故障的主服务器修复好之后,再将修好的主服务器作为从服务器连接到主服务器中。

此时我们进行这个操作的时候,会有一个时间间隔。

MHA的作用就相当于是一个监控一样,MHA搭建好之后,就可以实时的监控主服务器的运行状态。

一旦检测到主服务器发生故障之后,MHA就会在现有的从服务器中提升一个从服务器作为主服务器,并且MHA还能将之前的从服务器自动连接到新的主服务器上,MHA主要适用的是一主多从的环境,

应用场景:一主多从的环境

作用:提升主从复制环境中主服务器的可用性,尽量减少故障时间,

周期性检测主服务器的运行状态,一旦检测到主服务器故障后,会在现有的从服务器中选举一个新主服务器,并把其他的从服务器自动连接到新主服务器上,继续维持主从复制的运行,

问题:将来一主多从的环境中主服务器故障的时候,将哪个从服务器提升为主服务器?

在主从复制中一直存在的是时间延迟的问题,将来在数据量很大的情况下,我们就要看哪个从服务器复制的数据最多,我们就将那个从服务器作为新的主服务器,

如上图所示,我们如何去查看哪个从服务器复制的数据多呢?

show slave status\G

我们就去看这行数据,哪个从服务器的这行数据大,就表示复制的数据多,。

同时MHA会尝试记录主服务器的二进制日志信息,将来在新选举出来的主服务器上自动应用二进制日志信息,确保数据的完整性会将其他slave服务器自动连接到新的master服务器对于前端应用程序全是透明的。【如果检测不到旧的主服务器的二进制日志文件,那就需要人为干预了,人为获取旧主服务器二进制日志文件内容,】

MHA也可以做集群,来避免MHA的单点故障。

MHA角色:

1.mha-manager mha管理者

建议将其部署在独立的服务器上,用于检测主服务器的运行状态

2.mha-node mha客户端

部署所有数据库服务器上,具体作用是mha管理者与所有机器来进行通信。

二.部署MHA集群

环境描述:

192.168.183.10 MHA Manager +MHA node

192.168.183.11 master服务器 mha_node

192.168.183.12 slave服务器 mha_node

192.168.183.13 slave服务器 mha_node

1.关闭防火墙 selinux 时间同步

2.配置免密ssh

如上图所示,在生成密钥以后,将这个公钥文件夹的名字进行修改,改成ssh认证服务要求的名字,随后将整个文件夹拷贝给其他的机器。

在mha 管理者上生成密钥,随后将这个密钥拷贝给其他的机器。

3.添加所有机器上添加所有主机名解析。

如上图所示,在一台mha管理者的机器上添加好主机名解析之后,将这个文件拷贝给其他的机器,。

4.确保所有机器时间同步

如上图所示,检测所有机器时间同步

5.在mha管理机上安装mha相关软件

使用阿里的epel源。

如上图所示,在管理机上安装如上的两个软件。

6.在所有数据库服务器上安装mha4mysql-node软件

7.配置一主两从环境

1)在所有数据库服务器上启用二进制日志

在所有机器上将MySQL数据库安装好,即命令yum install -y mariadb-server

如上图所示,第一是在配置一主两从的环境中所有机器必须要启动二进制日志,

如上图所示,给每一个机器去配置server_id以及开启二进制日志,以及开启和自启动数据库。

第二创建允许所有主机远程连接的复制用户

如上图所示,在主服务器上创建好远程复制用户之后,分别在12和13的机器上去建立连接,去链接11这个主服务器。

3)配置从服务器连接主服务器,确保三台服务器都有远程复制用户。

如上图所示,这是在12的机器上创建连接,随后启动复制线程,随后使用show slave status\G 来查看复制线程状态。

如上图所示,如果在 从服务器上创建的连接操作没有错误的话,那么在主服务器上创建的用户就会在从服务器上也创建出来,。

如上图所示,我们也在这个机器上连接与主服务器的连接,然后启动复制线程,去使用命令show slave status\G来去查看复制线程状态。

8.创建MHA需要的管理用户

如上图所示,这是在主服务器创建4个用户,管理用户需要有4个,允许MHA集群中的任何一个机器去连接他们。

9.创建mha manager工作目录

10.编辑mha的配置文件

如上图所示,这就是MHA的配置文件。

如上图所示,这是MHA的配置文件。

11.检测免密ssh是否正常

12.检测一主两从环境是否正常

如上图所示,可以看到MySQL复制环境是好的,

13.启动MHA集群

14.验证MHA集群

一旦MHA完成一次选举之后MHA进程自己就停止了。

如上图所示,MHA进程停止,

如上图所示,只有当故障的主服务器被修好,作为从服务器连接到主服务器之后,MHA进程才能恢复正常,

15.修复故障的主机,将其作为从服务器连接到主服务器上,

如上图所示,在新主服务器上进行一个完全的数据备份,

随后将这个备份拷贝给11的机器。

相关推荐
结衣结衣.35 分钟前
【MySQL】数据类型
linux·数据库·sql·mysql
辰哥单片机设计39 分钟前
雨滴传感器详解(STM32)
数据库·mongodb
萑澈42 分钟前
深入探索 Unix 与 Linux:历史、内核及发行版
linux·服务器·unix
杰肥啊2 小时前
【网络】通过Samba实现Window挂在Linux服务器路径
linux·服务器·网络
努力也学不会java2 小时前
【Redis】Redis中的常见数据类型(一)
数据结构·数据库·redis·缓存·bootstrap
XY.散人2 小时前
初识Redis · 命令、数据结构补充、协议
数据库·redis·缓存
时迁2472 小时前
基于Docker+k8s集群的web应用部署与监控
运维·docker·kubernetes
2501_911121232 小时前
Shell编程之正则表达式与文本处理器
数据库·mysql
终身学习基地2 小时前
第二篇:linux之Xshell使用及相关linux操作
linux·运维·microsoft
海洋与大气科学2 小时前
Matlab画海洋与大气变量的时间序列并带标记面的三维折线图--来源粉丝
java·数据库·matlab