MySQL Group Replication (MGR)

MGR 是一个新的高可用与高扩展的方案,集群中的任何节点数据都是一样的,可以实现任何节点都可以写入,实现了真正意义上的多主。

https://blog.csdn.net/liang_0609/article/details/109462525
https://blog.csdn.net/jiaona_chen123/article/details/106627070

  • 优点:
    高一致性,基于原生复制及paxos协议的组复制技术,并以插件的方式提供,提供一致数据安全保证;
    高容错性,只要不是大多数节点坏掉就可以继续工作,有自动检测机制,当不同节点产生资源争用冲突时,不会出现错误,按照先到者优先原则进行处理,并且内置了自动化脑裂防护机制;
    高扩展性,节点的新增和移除都是自动的,新节点加入后,会自动从其他节点上同步状态,直到新节点和其他节点保持一致,如果某节点被移除了,其他节点自动更新组信息,自动维护新的组信息;
    高灵活性,有单主模式和多主模式,单主模式下,会自动选主,所有更新操作都在主上进行;多主模式下,所有server都可以同时处理更新操作。

  • 缺点
    仅用于InnoDB存储引擎(事务和行级锁
    表必须有主键
    必须启用GTID
    必须开启二进制日志,并且其格式必须为ROW(binlog_format=row)
    冲突DDl、DML只能在同一成员上执行成功
    在多主结构中,不完全支持外键
    不支持serializable的事务隔离级别
    只支持IPv4,并且需要低延迟,高带宽的网络环境
    MGR最大支持9个成员
    复制信息元数据必须存在于系统表(master-info-repository=TABLE、relay-log-info-reposi
    不支持复制过滤
    二进制日志checksums必须关闭(binlog-checksum=NONE)
    不支持savepoint的使用
    不支持超大事务



组复制可以在两种模式下运行

1.在单主模式下,组复制具有自动选主功能,每次只有一个 server成员接受更新。
2.在多主模式下,所有的 server 成员都可以同时接受更新。