• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
JZ666
博客园    首页    新随笔    联系   管理    订阅  订阅
MGR-MHA比较

MHA集群:

(1).简介

 

  MHA(Master High Availability)master高可用目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

 

在MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据。使用MySQL 5.5的半同步复制,可以大大降低数据丢失的风险。MHA可以与半同步复制结合起来。如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性。

image

 

MGR集群:

先说主从复制(默认异步复制),一主多从,主库提供读写功能,从库提供读功能。当一个事务在 master 提交成功

时,会把 binlog 文件同步到从库服务器上为 relay log 给 slave 端执行,这个过程主库是不考虑从库是

否有接收到 binlog 文件,有可能出现这种情况,当主库 commit 一个事务后,数据库发生宕机,刚好它

的 binlog 还没来得及传送到 slave 端,这个时候选任何一个 slave 端都会丢失这个事务,造成数据不一

致情况。原理图如下:

image

 

为了避免出现主从数据不一致的情况,MySQL 引入了半同步复制,添加多了一个从库反馈机制,这

个有两种方式设置:

主库执行完事务后,同步 binlog 给从库,从库 ack 反馈接收到 binlog,主库才会提交 commit,

反馈给客户端,释放会话;

主库执行完事务后,主库提交 commit ,同步 binlog 给从库,从库 ack 反馈接收到 binlog,反馈

给客户端,释放会话;

image

 

写操作集中在 MASTER 服务器上;

MASTER 宕机后,需要人为选择新主并重新给其他的 slave 端执行 change master,于是官方发

布了 MySQL Group Replication mysql group replication

那么,MySQL Group Replication 可以提供哪些功能呢?

1. 多主,在同一个 group 里边的所有实例,每一个实例可以执行写操作,也就是每个实例都执行

Read-Write

需要注意的是,多主情况下,当执行一个事务时,需要确保同个组内的每个实例都认可这个事务无冲

突异常,才可以 commit,如果设置的是单主,其他实例 ReadOnly,则不需要进行上面的判断

多主情况下,事务并发冲突问题就凸显出来了,如何避免呢?数据库内部有一个认证程序,当不同实

例并发对同一行发起修改,在同个组内广播认可时,会出现并发冲突,那么会按照先执行的提交,后执行

的回滚

2. 弹性,同个 Group Replication 中,节点的加入或者移除都是自动调整;如果新加入一个节点,

该节点会自动从 Group 的其他节点同步数据,直到与其他节点一致;如果移除一个节点,那么剩下的实

例会自动更新,不再向这个节点广播事务操作,当然,这里要注意,假设一个 Group 的节点有 n 个

(max(n)=9,同个 Group 最多节点数为 9),移除或者宕机的节点数应该小于等于 floor((n-

1)/2) ,注意是向下取整;如果是单主模式,宕机的是单主,则人为选择新主后,其他节点也会自动从新

主同步数据。

3. 更高性能的同步机制

image

 

一个复制组由若干个节点(数据库实例)组成,组内各个节点维护各自的数据副本(Share Nothing),

通过一致性协议实现原子消息和全局有序消息,来实现组内实例数据的一致。

 

1、高一致性,基于原生复制及 paxos 协议的组复制技术,并以插件的方式提供,提供一致数据安全

保证;

2、高容错性,只要不是大多数节点坏掉就可以继续工作,有自动检测机制,当不同节点产生资源争

用冲突时,不会出现错误,按照先到者优先原则进行处理,并且内置了自动化脑裂防护机制;

3、高扩展性,节点的新增和移除都是自动的,新节点加入后,会自动从其他节点上同步状态,直到

新节点和其他节点保持一致,如果某节点被移除了,其他节点自动更新组信息,自动维护新的组信息;

4、高灵活性,有单主模式和多主模式,单主模式下,会自动选主,所有更新操作都在主上进行;多

主模式下,所有 server 都可以同时处理更新操作。

MGR 是 MySQL 数据库未来发展的一个重要方向。

posted on 2025-12-15 17:03  Me-Tycoon  阅读(4)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3