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 进行复制。

相关推荐
赵优秀一一7 分钟前
SQLAlchemy学习记录
开发语言·数据库·python
m0_640309308 分钟前
如何在phpMyAdmin中生成XML格式导出_与其他企业系统的数据交互
jvm·数据库·python
xuhaoyu_cpp_java13 分钟前
MySql学习(四)
数据库·经验分享·笔记·sql·学习·mysql
2301_8152795215 分钟前
JavaScript中快速清空数组的多种方式及其性能差异
jvm·数据库·python
START_GAME17 分钟前
SQL Server 还原 .bak 文件(SSMS 图形界面法)
运维·服务器·数据库
suliqiang17 分钟前
MySQL数据库性能优化实战:系统性能提升100%的完整指南
数据库·mysql·性能优化
数厘19 分钟前
2.20 sql基础聚合函数(COUNT、SUM、AVG、MAX、MIN)
数据库·sql·oracle
苏渡苇29 分钟前
Redis 版本演进、新特性与协议那些事儿
数据库·redis·缓存·开源协议·redis版本·redis新特性
鬼蛟34 分钟前
Nacos
数据库·redis·缓存
倔强的石头_40 分钟前
NFS网络文件系统下企业级数据库安装排障实战:环境变量失效与权限问题的深度解析
数据库