先决条件
- 使用InnoDB存储引擎
- 每个表都必须有主键
- 网络性能
使用限制
- MGR是基于GTID的,继承GTID的相关限制
- mgr最大组员数量为9
- 不支持 --upgrade=MINIMAL参数
- gap locks 。 验证进程不处理gap locks
除非应用程序必须使用repeatable read场景,建议使用read committed隔离级别,在read committed隔离级别下,InnoDB不使用gap locks。 - Table locks和Named locks。验证进程不处理表锁或named locks
- Replication Event Checksums。由于复制事件校验和的设计限制,组复制当前无法使用它们。所以,设置 --binlog-checksum=NONE
- 序列化隔离级别。在多主情况下,不支持序列化事务隔离级别。如果设置为了此级别,组复制将拒绝提交事务。
- 并发DDL以及DML。多主模式下,不支持在不同节点上同时对同一对象进行DDL。在对象上执行数据定义语言(DDL)语句的过程中,在同一对象上但在不同服务器实例上执行并发数据操作语言(DML)可能会导致未检测到在不同实例上执行的DDL冲突的风险。
- 多主模式下不支持有级联约束的外键。
- 多主模式死锁 。多主模式下,select ... for update会导致死锁。
- 不支持全局复制筛选器。会导致群组不能达成一致状态。
- Encrypted Connections
- 事务大小限制,过大的事务会导致节点被驱逐。