一、 目的
了解 mysql8 的 MGR 也就是组复制的特性,搭建和配置,MGR 异常的处理
二、 MGR 简介
MGR 也就是 MySQL Group Replication 的简称,这是 mysql 在 5.7.17 版本推出全新的高可用与高扩展的
解决方案,MySQL 组复制提供了高可用、高扩展、高可靠的 MySQL 集群服务。高一致性,基于原生复制
及 paxos 协议的组复制技术,并以插件的方式提供,提供一致数据安全保证;高容错性,只要不是大多数节
点坏掉就可以继续工作,有自动检测机制,当不同节点产生资源争用冲突时,不会出现错误,按照先到者优
先原则进行处理,并且内置了自动化脑裂防护机制;高扩展性,节点的新增和移除都是自动的,新节点加入
后,会自动从其他节点上同步状态,直到新节点和其他节点保持一致,如果某节点被移除了,其他节点自动
更新组信息,自动维护新的组信息;高灵活性,有单主模式和多主模式,单主模式下,会自动选主,所有更
新操作都在主上进行;多主模式下,所有 server 都可以同时处理更新操作。
三、 MGR 复制的背景
MySQL5.17 的版本中,mysql 提出了一种新的同步机制,称为 state machine 复制,这种复制是一种分布
式的基于 server 之间的复制,并且组中的 server 成员会自动根据当前的协调。
MGR 复制可以分为两种,分别是单主模式复制和多主复制模式。
单主模式,组复制具有自主选主的功能,并且只有主节点可以进行 DDL 和 DML 的操作,其他节点全
部是只读状态。
多主模式,所有节点都可以进行 DDL 和 DML 操作。
对于这两种模式,mysql 都有专门的监控视图,并且有防脑裂的措施和算法,这些全靠 mysql 官方推出
的 Paxos 算法来实现