10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 236.9 kb
手册页(邮政编码)- 348.5 kb
信息(Gzip)- 3.4 mb
信息(邮政编码)- 3.4 mb
本手册节选

17.3.2组复制限制

组复制存在以下已知的限制。注意,当新当选的主节点从旧的主节点刷新其应用程序队列时,针对多主节点模式组描述的限制和问题也可以应用于故障转移事件期间的单主节点模式集群。

提示

组复制建立在基于GTID的复制之上,因此您还应该了解这一点第16.1.3.6节,“gtid复制的限制”

  • 差距锁。Group Replication的并发事务认证过程没有考虑到这一点锁的差距,因为关于间隙锁的信息无法在InnoDB.看到锁的差距为更多的信息。

    请注意

    对于一个多主模式的组,除非你依赖可重复读取语义,我们建议使用读过承诺使用组复制的隔离级别。InnoDB不使用间隙锁读过承诺,它将InnoDB中的本地冲突检测与Group Replication执行的分布式冲突检测保持一致。对于单主模式下的组,只有主模式接受写操作,因此读过承诺隔离级别对组复制不重要。

  • 表锁和命名锁。认证过程不考虑表锁(参见第13.3.5节,“LOCK TABLES和UNLOCK TABLES语句”)或命名锁(参见GET_LOCK ()).

  • 复制事件校验和。由于复制事件校验和的设计限制,组复制目前不能使用它们。因此设置——binlog-checksum =没有

  • 可序列化的隔离级别。可序列化的默认情况下,在多主组中不支持隔离级别。将事务隔离级别设置为可序列化的配置组复制拒绝提交事务。

  • 并发DDL与DML操作的对比。使用多主模式时,不支持在不同服务器上对相同对象执行并发数据定义语句和数据操作语句。在对象上执行数据定义语言(DDL)语句期间,在同一个对象上但在不同的服务器实例上执行并发数据操作语言(DML)会有在不同实例上执行的DDL不被检测到的风险。

  • 具有级联约束的外键。多主模式组(成员都配置了group_replication_single_primary_mode =了)不支持具有多级外键依赖关系的表,特别是已定义的表级联外键约束.这是因为导致多主模式组执行级联操作的外键约束可能导致未检测到的冲突,并导致组成员之间的数据不一致。因此,我们建议设置group_replication_enforce_update_everywhere_checks =对在多主模式组中使用的服务器实例上,以避免未检测到的冲突。

    在单主模式下,这不是问题,因为它不允许并发写入组的多个成员,因此不存在未检测到冲突的风险。

  • MySQL企业审计和MySQL企业防火墙。在5.7.21版本之前MySQL企业审计和MySQL企业防火墙的使用MyISAMmysql系统数据库。组复制不支持MyISAM表。

  • Multi-primary模式僵局。当一个组以多主模式运行时,选择. .更新语句会导致死锁。这是因为锁不是在组的成员之间共享的,因此可能无法达到对这样一条语句的期望。

  • 复制过滤器。复制过滤器不能在配置为Group Replication的MySQL服务器实例上使用,因为过滤某些服务器上的事务将使组无法就一致状态达成一致。

团体规模限制

单个复制组中MySQL服务器的最大数量为9个。如果更多的成员试图加入该组,他们的请求将被拒绝。通过测试和基准测试,该极限被确定为安全边界,在该边界下,团队可以在稳定的局域网上可靠地执行。

交易规模限制

如果单个事务产生的消息内容足够大,以至于在5秒钟的窗口内无法通过网络在组成员之间复制消息,那么成员可能被怀疑失败,然后被驱逐,因为他们正忙于处理事务。由于内存分配问题,大型事务还可能导致系统变慢。要避免这些问题,请使用以下缓解措施:

  • 在可能的情况下,尽量限制事务的大小。例如,拆分使用的文件加载数据成小块。

  • 使用系统变量group_replication_transaction_size_limit指定组接受的最大事务大小。在MySQL 5.7中,这个系统变量默认为0,但是在MySQL 8.0中,它默认的最大事务大小是150000000字节(大约143mb)。超过此限制的事务将被回滚,并且不发送到组复制的组通信系统(GCS)以便分发到组。根据需要组容忍的最大消息大小调整此变量的值,请记住处理事务所需的时间与其大小成正比。

  • 使用系统变量group_replication_compression_threshold指定应用压缩的消息大小。这个系统变量默认为1000000字节(1 MB),因此会自动压缩较大的消息。组复制的组通信系统(GCS)在接收到允许的消息时进行压缩group_replication_transaction_size_limit设置,但超过group_replication_compression_threshold设置。如果将系统变量值设置为零,则压缩将被停用。有关更多信息,请参见第17.9.7.2节,“消息压缩”

如果取消了消息压缩,并且没有指定最大事务大小,则复制组成员上的应用程序线程可以处理的消息的大小上限为该成员的值slave_max_allowed_packet系统变量,默认值和最大值为1073741824字节(1gb)。当接收成员试图处理超过此限制的消息时,该消息将失败。组成员可以生成并试图发送到组的消息的大小上限为4294967295字节(大约4 GB)。这是对group Replication (XCom, Paxos的一个变体)的组通信引擎所接受的包大小的硬限制,该引擎在GCS处理完消息后接收消息。当发出消息的成员试图广播该消息时,超过此限制的消息将失败。