当前位置: 首页 > news >正文

部署 MHA 高可用

目录

一、MySQL MHA

1.1 什么是MHA

1.2 MHA的组成

1.3 MHA的特点

1.4 MHA的工作原理

二、搭建MySQL MHA

2.1 环境

2.2 准备工作

2.3 安装MHA

2.4 在所有服务器上配置无密码认证

2.5 在manager节点上配置MHA

2.6 第一次配置需要在Master节点上手动开启虚拟IP

2.7 在manager节点上测试ssh

2.8 在manager节点上测试mysql主从连接

2.9 在manager节点上启动MHA

2.10 查看MHA状态

2.11 查看MHA日志

2.12 查看master VIP

2.13 MHA故障模拟

2.14 故障恢复

三、总结


一、MySQL MHA

1.1 什么是MHA

MHA(Master High Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制

的软件。

MHA 的出现就是解决MySQL 单点的问题。

MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。

MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。

1.2 MHA的组成

1、MHA Node(数据节点)

MHA Node 运行在每台 MySQL 服务器上。

2、MHA Manager(管理节点) 检测

MHA Manager 可以单独部署在一台独立的机器上,管理多个 master-slave 集群;

也可以部署在一台 slave 节点上。

MHA Manager 会定时探测集群中的 master 节点。当 master 出现故障时,它可以

自动将最新数据的 slave 提升为新的 master 然后将所有其他的 slave 重新指向新的

master。整个故障转移过程对应用程序完全透明。

1.3 MHA的特点

1、自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度

的保证数据不丢失

2、使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了

最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器

上,因此可以保证所有节点的数据一致性

3、目前MHA支持一主多从架构,最少三台服务,即一主两从

1.4 MHA的工作原理

1、从宕机崩溃的master 保存二进制日志事件(binlog events);

2、识别含有最新的更新 slave 日志

3、应用差异的中继日志(relay log)到其他的slave

4、应用从master保存的二进制日志事件

5、提升一个 salve 为新的master

6、使其他的slave连接行的master 进行复制。

二、搭建MySQL MHA

2.1 环境

1、MHA manager 节点服务器:CentOS7.6(64 位) manager/10.8.0.104 ,安装MHA node和 manager 组件

2、Master 节点服务器:CentOS7.6(64 位) mysql1/10.8.0.110 ,安装mysql5.7、MHA node组件

3、Slave1 节点服务器:CentOS7.6(64 位) mysql2/10.8.0.100 ,安装mysql5.7、MHA node组件

4、Slave2 节点服务器:CentOS7.6(64 位) mysql3/10.8.0.102 ,安装mysql5.7、MHA node组件

5、主从复制

2.2 准备工作

1、主从复制后将两个从库设置为只读模式

2、插入数据测试数据库同步

主库

从库

2.3 安装MHA

1、在所有服务器上安装MHA依赖环境

2、在所有服务器上安装node组件

3、在MHA manager节点上安装manager组件(10.8.0.104)

2.4 在所有服务器上配置无密码认证

1、在manager节点上配置所有数据库节点的无密码认证

2、在master节点上配置slave1和slave2节点的无密码认证

3、在slave1上配置数据库节点master和slave2的无密码认证

4、在slave2上配置数据库节点master和slave1的无密码认证

2.5 在manager节点上配置MHA

1、在 manager 节点上复制相关脚本到/usr/local/bin 目录

生成4个执行文件

2、复制master_ip_failover文件到/usr/local/bin目录下

3、修改master_ip_failover文件

添加内容

4、创建 MHA 软件目录并拷贝配置文件,这里使用app1.cnf配置文件来管理 mysql 节

点服务器

5、修改app1.cnf配置文件

2.6 第一次配置需要在Master节点上手动开启虚拟IP

2.7 在manager节点上测试ssh

2.8 在manager节点上测试mysql主从连接

2.9 在manager节点上启动MHA

2.10 查看MHA状态

2.11 查看MHA日志

2.12 查看master VIP

2.13 MHA故障模拟

1、关闭master节点的Mysql,正常自动切换一次后,MHA进程会退出。HMA会自动修改app1.cnf文件内容,将宕机的 master 节点删除。查看slave1是否接管VIP

2.14 故障恢复

1、master节点开启mysql服务

2、在slave1节点上查看

3、在原主服务器上执行同步操作

4、在 manager节点上修改配置文件app1.cnf(再把这个记录添加进去,因为它检测掉失

效时候会自动消失)
5、manager节点上启动MHA

三、总结

  1. 环境准备:基于CentOS 7.6搭建一主两从(10.8.0.110为主,10.8.0.100/102为从)架构,并配置MySQL主从复制,将从库设为只读。

  2. 组件安装:在所有节点安装MHA依赖环境,并分别在Master/Slave节点安装node组件,在Manager节点安装manager组件。

  3. 核心配置:配置各节点间的SSH无密码认证,复制并修改MHA配置文件app1.cnf,手动开启虚拟IP。

  4. 启动与测试:通过masterha_check_ssh检查连通性,随后在Manager节点后台启动MHA服务。

http://www.jsqmd.com/news/1337848/

相关文章:

  • 从加密Godot项目中恢复源代码与资源的完整技术指南
  • Linux 网络服务架设学习笔记(第三期)——文件共享服务(上篇):NFS 与 Rsync——网络文件系统与数据同步
  • 2026年怎么从抖音提取视频?收藏学习向实用教程 - 免费软件工具方法教程
  • 本地AI助理moltbot/Clawdbot:从RAG原理到私有化部署实战
  • 正余弦优化算法(SCA)原理详解与Python实现:从数学到工程优化
  • 拼多多批量开票为什么还要一张张点?我做了个“多多开票助手”
  • DRF视图与路由进阶:从基础CRUD到复杂API架构设计
  • Thanos多集群监控聚合平台在分布式测试中的应用
  • Windows SAM文件与NTLM Hash解密原理及攻防实战
  • C++与OpenCV实现多视图逆透视变换生成鸟瞰图完整指南
  • 修复Rocky Linux MobaXterm SSH 反复断开问题
  • 优化AI推理:针对AI工作负载的实时Node Balancers指标
  • 界首市外墙漏水怎么处理_2026皖西北黄淮平原城市漏水维修避坑指南与精选 - 雨婺虹修缮
  • 无源带通滤波器设计:从LC谐振原理到工程实践
  • C++游戏开发入门:从语言核心到实战避坑指南
  • 为什么ChatGPT查文献总被编造DOI误导?聊聊MedPeer依托真实数据解决AI幻觉的方案
  • 基于ddddocr与BurpSuite的验证码自动化识别与绕过实战
  • S905L电视盒子刷机实战:打造Android TV与EmuELEC双系统娱乐中心
  • 天文数据处理:Python实现FITS文件频率基准转换与重网格化
  • 永磁直驱海上风电仿真建模与Matlab实践
  • DDD领域驱动设计:从业务建模到微服务落地的核心思想与实践
  • 统信UOS专业版root权限开启:三种安全方案与深度管理指南
  • 别急着上 Agentic AI,成本、边界和兜底方案没算清,团队只会翻车
  • Codex 工具调用报 400,问题到底出在哪?
  • TLS流量解密实战:从Wireshark配置到Flag提取全解析
  • 2026 年更新:香坊本地钢套钢外滑动保温管源头厂家联系方式,埋在地下30年的热力管道,居然还能这么稳?原来是靠这玩意儿撑着-友元管道 - 行业甄选官
  • ROS 2数据记录与回放:从ros2 bag工具到工程化调试实践
  • 《c# 实现p2p文件分享与传输系统》 一、 模型
  • 操作系统进程管理实战:从CPU调度到死锁排查,解决程序无法运行与资源占用问题
  • IAR嵌入式开发入门:从环境配置到项目实战全解析