MySQL的MHA

1.什么是 MHA

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

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

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

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

2.MHA 的组成

●MHA Node(数据节点)

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

●MHA Manager(管理节点)

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

MHA Manager 会定时探测集群中的 master 节点。当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 mas然后将所有其他的 slave 重新指向新的 master。整个故障转移过程对应用程序完全透明。

ter,

3.MHA 的特点

●自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失

●使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性

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

MHA Manger 管理多组主从复制。

MHA工作原理总结如下:

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

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

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

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

5、提升一个 salve 为新的master

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

相关推荐
BTU_YC1 小时前
Neo4j查询计划完全指南:读懂数据库的“执行蓝图“
数据库·neo4j
非极限码农1 小时前
Neo4j图数据库上手指南
大数据·数据库·数据分析·neo4j
mit6.8241 小时前
[C# starter-kit] 命令/查询职责分离CQRS | MediatR |
java·数据库·c#
咋吃都不胖lyh2 小时前
SQL-多对多关系
android·mysql·数据分析
苏打水com2 小时前
数据库进阶实战:从性能优化到分布式架构的核心突破
数据库·后端
shan~~3 小时前
linux达梦数据库操作
linux·数据库·chrome
武文斌773 小时前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习
CoderIsArt3 小时前
SQLite架构
数据库·sqlite
lixora4 小时前
银河麒麟高级服务器操作系统(ADM64 版)V10(SP1)搭建 Oracle 19c RAC
数据库
郝学胜-神的一滴4 小时前
使用Linux的read和write系统函数操作文件
linux·服务器·开发语言·数据库·c++·程序人生·软件工程