10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 235.4 kb
手册页(Zip)- 347.1 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

17.3.1组复制要求

要用于组复制的服务器实例必须满足以下要求。

基础设施

  • InnoDB存储引擎。数据必须存储在InnoDB事务性存储引擎。事务被乐观地执行,然后在提交时检查是否有冲突。如果存在冲突,为了保持整个组的一致性,将回滚一些事务。这意味着需要事务性存储引擎。此外,InnoDB提供了一些额外的功能,可以在与组复制一起操作时更好地管理和处理冲突。使用其他存储引擎,包括临时的内存,可能会导致组复制错误。属性可以阻止使用其他存储引擎disabled_storage_engines组成员的系统变量,例如:

    disabled_storage_engines = " MyISAM、黑洞、联合、归档、记忆”
  • 主键。组要复制的每个表必须有一个已定义的主键,或者等效的主键,其中等效的是一个非空的唯一键。这些键作为表中每一行的唯一标识符,使系统能够通过准确识别每个事务修改了哪些行来确定哪些事务发生冲突。

  • IPv4网络。MySQL group Replication使用的组通信引擎只支持IPv4。因此,组复制需要IPv4网络基础设施。

  • 网络性能。MySQL Group Replication被设计为部署在集群环境中,其中服务器实例彼此非常接近。一个组的性能和稳定性会受到网络延迟和网络带宽的影响。所有小组成员之间必须始终保持双向通信。如果服务器实例的入站或出站通信被阻塞(例如,由于防火墙或连接问题),则该成员无法在组中发挥作用,组成员(包括有问题的成员)可能无法报告受影响服务器实例的正确成员状态。

服务器实例配置

必须在组成员的服务器实例上配置以下选项。

  • 唯一服务器标识符。使用server_idsystem变量将服务器配置为唯一的服务器ID,这对于复制拓扑中的所有服务器都是必需的。在默认服务器ID为0的情况下,复制拓扑中的服务器无法相互连接。服务器ID必须为1 ~(2)之间的正整数32)−1,且不能与复制拓扑中其他服务器正在使用的其他服务器ID相同。

  • 二进制日志活动。——log-bin [= log_file_name].MySQL Group Replication复制二进制日志内容,因此需要打开二进制日志才能操作。该选项默认启用。看到第5.4.4节“二进制日志”

  • 副本更新记录。——log-slave-updates.服务器需要记录通过复制应用程序应用的二进制日志。组中的服务器需要记录它们从组中接收和应用的所有事务。这是必需的,因为恢复是依靠组中参与者的二进制日志进行的。因此,每个事务的副本都需要存在于每个服务器上,即使对于那些不是在服务器上发起的事务也是如此。

  • 二进制日志行格式。——binlog-format =行.组复制依赖于基于行的复制格式在组中的服务器之间一致地传播更改。它依赖于基于行的基础设施,能够提取必要的信息,以检测在组中不同服务器上并发执行的事务之间的冲突。看到第16.2.1节“复制格式”

  • 二进制日志校验和关闭。——binlog-checksum =没有.由于复制事件校验和的设计限制,组复制不能使用它们,必须禁用它们。

  • 全局事务标识符打开。gtid_mode =对而且enforce_gtid_consistency =对.Group Replication使用全局事务标识符来精确跟踪每个服务器实例上已提交的事务,从而能够推断哪些服务器已执行的事务可能与其他地方已提交的事务发生冲突。换句话说,显式事务标识符是框架的一个基本部分,能够确定哪些事务可能发生冲突。看到第16.1.3节,“使用全局事务标识符的复制”

  • 复制信息存储库。master_info_repository =表而且relay_log_info_repository =表.复制应用程序需要将源元数据和副本元数据写入mysql.slave_master_info而且mysql.slave_relay_log_info系统表。这确保Group Replication插件具有一致的可恢复性和复制元数据的事务管理。看到第16.2.4.2节,“复制元数据存储库”

  • 事务写集提取。——transaction-write-set-extraction = XXHASH64这样,当收集行并将它们记录到二进制日志中时,服务器也会收集写集。写集基于每行的主键,是标记的简化和紧凑视图,该标记唯一地标识所更改的行。然后使用该标记检测冲突。

  • 小写表名。——lower-case-table-names为所有组成员设置相同的值。属性的使用,设置为1是正确的InnoDB存储引擎,用于组复制。注意,这个设置不是所有平台的默认设置。

  • 多线程的类型。Group Replication成员可以配置为多线程副本,从而允许并行应用事务。的非零值slave_parallel_workers在成员上启用多线程应用程序,最多可指定1024个并行应用程序线程。如果你这样做,还需要以下设置:

    slave_preserve_commit_order = 1

    需要此设置以确保并行事务的最终提交与原始事务的顺序相同。Group Replication依赖于围绕所有参与成员以相同顺序接收和应用已提交事务的保证而构建的一致性机制。

    slave_parallel_type = LOGICAL_CLOCK

    此设置是必需的slave_preserve_commit_order = 1.它指定用于决定允许哪些事务在副本上并行执行的策略。

    设置slave_parallel_workers = 0禁用并行执行,并为副本提供一个应用程序线程,而没有协调器线程。有了这个设置,slave_parallel_type而且slave_preserve_commit_order选项没有任何作用,会被忽略。