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的机器。

相关推荐
IT19952 分钟前
Linux笔记-使用systemd管理进程
linux·运维·笔记
Web极客码2 分钟前
WordPress 在哪里存储网站上的图片?
运维·服务器·wordpress
J_liaty4 分钟前
SpringBoot整合Canal实现数据库实时同步
数据库·spring boot·后端·canal
想逃离铁厂的老铁7 分钟前
Day60 >> 94、城市间货物运输1️⃣ + 95、城市间货物运输 2️⃣ + 96、城市间货物运输 3️⃣
java·服务器·前端
杜子不疼.8 分钟前
用Claude Code构建AI内容创作工作流:从灵感到发布的自动化实践
运维·人工智能·自动化
草莓熊Lotso9 分钟前
从零手搓实现 Linux 简易 Shell:内建命令 + 环境变量 + 程序替换全解析
linux·运维·服务器·数据库·c++·人工智能
Mr_Xuhhh2 小时前
MySQL核心知识梳理:从连接到查询的完整指南
数据库·sql·mysql
wsxlgg2 小时前
MySQL中count(*)、count(1)、count(字段)的区别
数据库·mysql
人工智能训练8 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
pengdott8 小时前
Oracle RAC内存融合技术深度解析:集群性能的幕后引擎
数据库·oracle