MySQL 8.0 参考手册  / 第十八章 组复制  /  17.7 组复制系统变量

17.7 组复制系统变量

本节列出了特定于 Group Replication 插件的系统变量。每个配置选项都以“”为前缀group_replication

Group Replication 的大多数系统变量被描述为动态的,它们的值可以在服务器运行时更​​改。STOP GROUP_REPLICATION但是,在大多数情况下,更改仅在您使用语句后跟语句停止并重新启动组成员上的组复制后生效 START GROUP_REPLICATION 。对以下系统变量的更改无需停止并重新启动 Group Replication 即可生效:

组复制的大多数系统变量在不同的组成员上可以有不同的值。对于以下系统变量,建议在一个组的所有成员上设置相同的值,以避免不必要的事务回滚、消息传递失败或消息恢复失败:

组复制组成员上的一些系统变量,包括一些组复制特定的系统变量和一些通用系统变量,是组范围的配置设置。这些系统变量必须在所有组成员上具有相同的值,在组复制运行时不能更改,并且需要完全重新启动组(由服务器引导 group_replication_bootstrap_group=ON)才能使值更改生效。这些条件适用于以下系统变量:

重要的

Group Replication 插件特有的系统变量如下:

  • group_replication_allow_local_disjoint_gtids_join

    命令行格式 --group-replication-allow-local-disjoint-gtids-join[={OFF|ON}]
    介绍 5.7.17
    弃用 5.7.21
    系统变量 group_replication_allow_local_disjoint_gtids_join
    范围 全球的
    动态的 是的
    类型 布尔值
    默认值 OFF

    在 5.7.21 版中弃用,并计划在未来版本中删除。允许服务器加入组,即使它具有组中不存在的本地事务。

    警告

    启用此选项时要小心,因为不正确的使用会导致组冲突和事务回滚。该选项仅应作为最后手段启用,以允许具有本地事务的服务器加入现有组,并且仅当本地事务不影响组处理的数据(例如,管理操作写入二进制日志)。该选项不应在所有组成员上保持启用状态。

  • group_replication_allow_local_lower_version_join

    命令行格式 --group-replication-allow-local-lower-version-join[={OFF|ON}]
    介绍 5.7.17
    系统变量 group_replication_allow_local_lower_version_join
    范围 全球的
    动态的 是的
    类型 布尔值
    默认值 OFF

    允许当前服务器加入该组,即使它的主要版本低于该组。使用默认设置 OFF,如果服务器的主要版本低于现有组成员,则不允许服务器加入复制组。例如,MySQL 5.7 服务器不能加入由 MySQL 8.0 服务器组成的组。此标准策略确保组中的所有成员都能够交换消息和应用事务。仅在以下场景 设置 group_replication_allow_local_lower_version_join 为:ON

    • 为了提高组的容错能力,必须在紧急情况下向组中添加服务器,并且只有旧版本可用。

    • 您希望在不关闭整个组并再次引导它的情况下对复制组成员进行降级。

    警告

    将此选项设置为ON不会使新成员与该组兼容,并允许它加入该组,而无需任何保护措施来防止现有成员的不兼容行为。为保证新成员的正确操作,请注意以下两点:

    1. 在具有较低主要版本的服务器加入组之前,停止对该服务器的所有写入。

    2. 从具有较低主要版本的服务器加入组的点开始,停止对组中其他服务器的所有写入。

    如果没有这些预防措施,具有较低主要版本的服务器可能会遇到困难并因错误而终止。

  • group_replication_auto_increment_increment

    命令行格式 --group-replication-auto-increment-increment=#
    介绍 5.7.17
    系统变量 group_replication_auto_increment_increment
    范围 全球的
    动态的 是的
    类型 整数
    默认值 7
    最小值 1
    最大值 65535

    确定在此服务器实例上执行的事务的连续列值之间的间隔。该系统变量应该对所有组成员具有相同的值。当在服务器上启动Group Replication时,服务器系统变量的 auto_increment_increment值更改为该值,服务器系统变量的值auto_increment_offset 更改为服务器ID。这些设置避免了为写入组成员选择重复的自动增量值,这会导致事务回滚。当 Group Replication 停止时,更改将恢复。只有在以下情况下才会进行和恢复这些 auto_increment_increment更改 auto_increment_offset每个都有它们的默认值 1。如果它们的值已经从默认值修改,Group Replication 不会改变它们。

    默认值 7 表示可用值的数量与复制组允许的最大大小(9 个成员)之间的平衡。如果您的组有更多或更少的成员,您可以在组复制开始之前设置此系统变量以匹配组成员的预期数量。您无法在组复制运行时更改设置。

    重要的

    设置 在 时group_replication_auto_increment_increment 无效 。 group_replication_single_primary_modeON

  • group_replication_bootstrap_group

    命令行格式 --group-replication-bootstrap-group[={OFF|ON}]
    介绍 5.7.17
    系统变量 group_replication_bootstrap_group
    范围 全球的
    动态的 是的
    类型 布尔值
    默认值 OFF

    配置此服务器以引导组。此选项只能在一台服务器上设置,并且只能在第一次启动组或重新启动整个组时设置。引导组后,将此选项设置为 OFF。它应该在 OFF动态和配置文件中设置。在组运行时启动两台服务器或使用此选项设置重新启动一台服务器可能会导致人为的裂脑情况,即引导两个具有相同名称的独立组。

  • group_replication_components_stop_timeout

    命令行格式 --group-replication-components-stop-timeout=#
    介绍 5.7.17
    系统变量 group_replication_components_stop_timeout
    范围 全球的
    动态的 是的
    类型 整数
    默认值 31536000
    最小值 2
    最大值 31536000
    单元

    超时,以秒为单位,组复制在关闭时等待每个组件。

  • group_replication_compression_threshold

    命令行格式 --group-replication-compression-threshold=#
    介绍 5.7.17
    系统变量 group_replication_compression_threshold
    范围 全球的
    动态的 是的
    类型 整数
    默认值 1000000
    最小值 0
    最大值 4294967295
    单元 字节
  • 以字节为单位的阈值,超过该阈值将对组成员之间发送的消息应用压缩。如果此系统变量设置为零,则禁用压缩。所有组成员的值 group_replication_compression_threshold 应该相同。

    Group Replication 使用 LZ4 压缩算法来压缩组中发送的消息。请注意,LZ4 压缩算法支持的最大输入大小为 2113929216 字节。此限制低于 group_replication_compression_threshold 系统变量的最大可能值,该值与 XCom 接受的最大消息大小相匹配。使用 LZ4 压缩算法时,不要为 设置大于 2113929216 字节的值 group_replication_compression_threshold,因为启用消息压缩时无法提交超过此大小的事务。

    有关详细信息,请参阅 第 17.9.7.2 节,“消息压缩”

  • group_replication_enforce_update_everywhere_checks

    命令行格式 --group-replication-enforce-update-everywhere-checks[={OFF|ON}]
    介绍 5.7.17
    系统变量 group_replication_enforce_update_everywhere_checks
    范围 全球的
    动态的 是的
    类型 布尔值
    默认值 OFF

    为所有地方的多主更新启用或禁用严格的一致性检查。默认情况下禁用检查。在单主模式下,必须在所有组成员上禁用此选项。在多主模式下,启用此选项时,将按如下方式检查语句以确保它们与多主模式兼容:

    • 如果一个事务在 SERIALIZABLE隔离级别下执行,那么它的提交在与组同步时会失败。

    • 如果事务针对具有带级联约束的外键的表执行,则事务在与组同步时无法提交。

    此系统变量是组范围的配置设置。它必须在所有组成员上具有相同的值,在组复制运行时不能更改,并且需要完全重新启动组(服务器引导 group_replication_bootstrap_group=ON)才能使值更改生效。

  • group_replication_exit_state_action

    命令行格式 --group-replication-exit-state-action=value
    介绍 5.7.24
    系统变量 group_replication_exit_state_action
    范围 全球的
    动态的 是的
    类型 枚举
    默认值 READ_ONLY
    有效值

    ABORT_SERVER

    READ_ONLY

    配置当服务器实例无意中离开组时组复制的行为方式,例如在遇到应用程序错误之后,或者在失去多数的情况下,或者当组的另一个成员由于怀疑超时而将其驱逐时。在失去多数的情况下,成员离开组的超时时间由 group_replication_unreachable_majority_timeout 系统变量设置。请注意,被开除的组成员在重新连接到组之前并不知道自己被开除了,因此只有在该成员设法重新连接或者该成员对自己产生怀疑并开除自己时才会执行指定的操作。

  • group_replication_exit_state_action 设置为 时ABORT_SERVER,如果成员无意中退出组,则实例关闭 MySQL。

    group_replication_exit_state_action 设置为 时READ_ONLY,如果成员无意中退出了组,则实例将 MySQL 切换到超级只读模式(通过将系统变量设置 super_read_onlyON)。此设置是 MySQL 5.7 中的默认设置。

    重要的

    如果在成员成功加入组之前发生故障,则不执行指定的退出操作。如果在本地配置检查期间出现故障,或者加入成员的配置与组的配置不匹配,就会出现这种情况。在这些情况下, super_read_only系统变量保留其原始值,服务器不会关闭 MySQL。为了保证在Group Replication没有启动的情况下,服务器无法接受更新,因此我们建议 super_read_only=ON在启动时在服务器的配置文件中设置,Group Replication改为OFF成功启动后在主要成员上。当服务器配置为在服务器启动时启动 Group Replication ( ) 时,此保护措施尤为重要,但在使用命令 group_replication_start_on_boot=ON手动启动 Group Replication 时也很有用。START GROUP_REPLICATION

    如果成员成功加入组后发生失败,则执行指定的退出操作。如果存在应用程序错误,成员被驱逐出组,或者成员被设置为在无法达到多数的情况下超时,就会出现这种情况。在这些情况下,如果READ_ONLY 是退出操作,则 super_read_only系统变量设置为ON,或者如果 ABORT_SERVER是退出操作,则服务器关闭 MySQL。

    表 17.4 组复制失败情况下的退出操作

    故障情况

    组复制开始于START GROUP_REPLICATION

    组复制开始于 group_replication_start_on_boot =ON

    成员未通过本地配置检查

    或者

    加入成员和组配置不匹配

    super_read_only不变

    MySQL 继续运行

    在启动时设置super_read_only=ON以防止更新

    super_read_only不变

    MySQL 继续运行

    在启动时设置super_read_only=ON以防止更新(重要)

    成员上的应用程序错误

    或者

    成员被开除出群

    或者

    无法到达的多数超时

    super_read_only调成 ON

    或者

    MySQL 关闭

    super_read_only调成 ON

    或者

    MySQL 关闭


  • group_replication_flow_control_applier_threshold

    命令行格式 --group-replication-flow-control-applier-threshold=#
    介绍 5.7.17
    系统变量 group_replication_flow_control_applier_threshold
    范围 全球的
    动态的 是的
    类型 整数
    默认值 25000
    最小值 0
    最大值 2147483647
    单元 交易

    指定应用程序队列中触发流量控制的等待事务数。可以在不重置组复制的情况下更改此变量。

  • group_replication_flow_control_certifier_threshold

    命令行格式 --group-replication-flow-control-certifier-threshold=#
    介绍 5.7.17
    系统变量 group_replication_flow_control_certifier_threshold
    范围 全球的
    动态的 是的
    类型 整数
    默认值 25000
    最小值 0
    最大值 2147483647
    单元 交易

    指定验证者队列中触发流控制的等待事务数。可以在不重置组复制的情况下更改此变量。

  • group_replication_flow_control_hold_percent

    命令行格式 --group-replication-flow-control-hold-percent=#
    系统变量 group_replication_flow_control_hold_percent
    范围 全球的
    动态的 是的
    类型 整数
    默认值 10
    最小值 0
    最大值 100
    单元 百分比

    定义未使用的组配额百分比,以允许流量控制下的集群赶上积压。值为 0 意味着配额的任何部分都没有保留用于赶上工作积压。

  • group_replication_flow_control_max_commit_quota

    命令行格式 --group-replication-flow-control-max-commit-quota=#
    系统变量 group_replication_flow_control_max_commit_quota
    范围 全球的
    动态的 是的
    类型 整数
    默认值 0
    最小值 0
    最大值 2147483647

    定义组的最大流量控制配额,或启用流量控制时任何时间段的最大可用配额。值为 0 表示没有设置最大配额。不能小于 group_replication_flow_control_min_quotagroup_replication_flow_control_min_recovery_quota

  • group_replication_flow_control_member_quota_percent

    命令行格式 --group-replication-flow-control-member-quota-percent=#
    系统变量 group_replication_flow_control_member_quota_percent
    范围 全球的
    动态的 是的
    类型 整数
    默认值 0
    最小值 0
    最大值 100
    单元 百分比

    定义在计算配额时成员应假设其自身可用的配额百分比。值为 0 表示配额应在上一时期的写入者成员之间平均分配。

  • group_replication_flow_control_min_quota

    命令行格式 --group-replication-flow-control-min-quota=#
    系统变量 group_replication_flow_control_min_quota
    范围 全球的
    动态的 是的
    类型 整数
    默认值 0
    最小值 0
    最大值 2147483647

    控制可以分配给成员的最低流量控制配额,独立于计算的上一周期执行的最小配额。值为 0 意味着没有最小配额。不能大于 group_replication_flow_control_max_commit_quota.

  • group_replication_flow_control_min_recovery_quota

    命令行格式 --group-replication-flow-control-min-recovery-quota=#
    系统变量 group_replication_flow_control_min_recovery_quota
    范围 全球的
    动态的 是的
    类型 整数
    默认值 0
    最小值 0
    最大值 2147483647

    控制由于组中另一个正在恢复的成员而可以分配给成员的最低配额,独立于上一时期执行的计算的最小配额。值为 0 意味着没有最小配额。不能大于 group_replication_flow_control_max_commit_quota.

  • group_replication_flow_control_mode

    命令行格式 --group-replication-flow-control-mode=value
    介绍 5.7.17
    系统变量 group_replication_flow_control_mode
    范围 全球的
    动态的 是的
    类型 枚举
    默认值 QUOTA
    有效值

    DISABLED

    QUOTA

    指定用于流量控制的模式。可以在不重置组复制的情况下更改此变量。

  • group_replication_force_members

    命令行格式 --group-replication-force-members=value
    介绍 5.7.17
    系统变量 group_replication_force_members
    范围 全球的
    动态的 是的
    类型 细绳

    以逗号分隔的对等地址列表,例如 host1:port1, host2:port2。此选项用于强制新的组成员身份,其中被排除的成员不会收到新视图并被阻止。(您需要手动终止被排除的服务器。)列表中任何无效的主机名都可能导致此操作失败,因为它们可能会阻止组成员身份。有关要遵循的过程的描述,请参阅 第 17.5.3 节,“网络分区”

    您必须指定地址或主机名和端口,因为它们在 group_replication_local_address 每个成员的选项中给出。例如:

    "198.51.100.44:33061,example.org:33061"

    在使用 group_replication_force_members 系统变量成功强制新的组成员身份并解除对组的阻止后,请确保清除系统变量。 group_replication_force_members 必须为空才能发出START GROUP_REPLICATION语句。

  • group_replication_group_name

    命令行格式 --group-replication-group-name=value
    介绍 5.7.17
    系统变量 group_replication_group_name
    范围 全球的
    动态的 是的
    类型 细绳

    此服务器实例所属的组的名称。必须是有效的 UUID。在为二进制日志中的组复制事件设置 GTID 时,会在内部使用此 UUID。

    重要的

    必须使用唯一的 UUID。

  • group_replication_group_seeds

    命令行格式 --group-replication-group-seeds=value
    介绍 5.7.17
    系统变量 group_replication_group_seeds
    范围 全球的
    动态的 是的
    类型 细绳

    加入成员可以连接到的组成员列表,以获取所有当前组成员的详细信息。加入成员使用这些详细信息来选择并连接到组成员以获得与组同步所需的数据。该列表由指定为逗号分隔列表的种子成员的网络地址组成,例如 host1:port1, host2:port2

    重要的

    这些地址不能是成员的 SQL 主机名和端口。

    请注意,您为此变量指定的值只有START GROUP_REPLICATION在发出声明并且群组通信系统 (GCS) 可用后才会生效。

    通常此列表包含组的所有成员,但您可以选择组成员的子集作为种子。该列表必须包含至少一个有效的成员地址。启动组复制时会验证每个地址。如果列表不包含任何有效的主机名,则发布START GROUP_REPLICATION失败。

  • group_replication_gtid_assignment_block_size

    命令行格式 --group-replication-gtid-assignment-block-size=#
    介绍 5.7.17
    系统变量 group_replication_gtid_assignment_block_size
    范围 全球的
    动态的 是的
    类型 整数
    默认值 1000000
    最小值 1
    最大值(64 位平台) 9223372036854775807
    最大值(32 位平台) 4294967295

    为每个成员保留的连续 GTID 的数量。每个成员消耗其块并在需要时保留更多。

    此系统变量是组范围的配置设置。它必须在所有组成员上具有相同的值,在组复制运行时不能更改,并且需要完全重新启动组(服务器引导 group_replication_bootstrap_group=ON)才能使值更改生效。

  • group_replication_ip_whitelist

    命令行格式 --group-replication-ip-whitelist=value
    介绍 5.7.17
    系统变量 group_replication_ip_whitelist
    范围 全球的
    动态的 是的
    类型 细绳
    默认值 AUTOMATIC

    指定允许连接到该组的主机的白名单。您为每个组成员指定的地址 group_replication_local_address 必须在复制组中的其他服务器上列入白名单。请注意,您为此变量指定的值只有START GROUP_REPLICATION在发出声明并且群组通信系统 (GCS) 可用后才会生效。

    默认情况下,此系统变量设置为 AUTOMATIC,它允许来自主机上活动的私有子网的连接。组通信引擎 (XCom) 自动扫描主机上的活动接口,并识别那些地址位于私有子网上的接口。这些地址和localhostIPv4 的 IP 地址用于创建组复制白名单。有关地址自动列入白名单的范围列表,请参阅 第 17.6.1 节,“组复制 IP 地址白名单”

    私有地址的自动白名单不能用于来自私有网络外部服务器的连接。对于位于不同计算机上的服务器实例之间的组复制连接,您必须提供公共 IP 地址并将这些地址指定为显式允许列表。如果您为白名单指定任何条目,则不会自动添加私有地址,因此如果您使用其中任何一个,则必须明确指定它们。localhostIP 地址是自动添加 的。

    作为 group_replication_ip_whitelist 选项的值,您可以指定以下任意组合:

    • IPv4 地址(例如, 198.51.100.44

    • 带有 CIDR 表示法的 IPv4 地址(例如, 192.0.2.21/24

    • 主机名,来自 MySQL 5.7.21(例如, example.org

    • 带有 CIDR 表示法的主机名,来自 MySQL 5.7.21(例如,www.example.com/24

    MySQL 5.7 不支持 IPv6 地址和解析为 IPv6 地址的主机名。您可以将 CIDR 表示法与主机名或 IP 地址结合使用,以将具有特定网络前缀的 IP 地址块列入许可名单,但请确保指定子网中的所有 IP 地址都在您的控制之下。

    必须用逗号分隔白名单中的每个条目。例如:

    192.0.2.22,198.51.100.0/24,example.org,www.example.com/24

    可以根据您的安全要求为不同的组成员配置不同的白名单,例如,为了将不同的子网分开。但是,这可能会在重新配置组时导致问题。如果您没有特定的安全要求来执行其他操作,请对组的所有成员使用相同的白名单。有关详细信息,请参阅第 17.6.1 节,“组复制 IP 地址白名单”

    对于主机名,仅当另一台服务器发出连接请求时才会进行名称解析。无法解析的主机名不会被考虑用于白名单验证,并且警告消息会写入错误日志。对已解析的主机名进行前向确认反向 DNS (FCrDNS) 验证。

    警告

    主机名本质上不如白名单中的 IP 地址安全。FCrDNS 验证提供了良好的保护级别,但可能会受到某些类型的攻击。仅在绝对必要时才在允许列表中指定主机名,并确保用于名称解析的所有组件(例如 DNS 服务器)都在您的控制之下。您还可以使用主机文件在本地实现名称解析,以避免使用外部组件。

  • group_replication_local_address

    命令行格式 --group-replication-local-address=value
    介绍 5.7.17
    系统变量 group_replication_local_address
    范围 全球的
    动态的 是的
    类型 细绳

    成员为来自其他成员的连接提供的网络地址,指定为host:port 格式化字符串。该地址必须可以被该组的所有成员访问,因为它被组通信引擎用于组复制(XCom,一种 Paxos 变体),用于远程 XCom 实例之间的 TCP 通信。与本地实例的通信是通过使用共享内存的输入通道进行的。

    警告

    请勿使用此地址与会员联系。

    其他 Group Replication 成员通过此联系该成员 host:port以进行所有内部组通信。这不是 MySQL 服务器 SQL 协议主机和端口。

    您在其中指定的地址或主机名 group_replication_local_address 被组复制用作复制组内组成员的唯一标识符。只要主机名或 IP 地址都不同,就可以为复制组的所有成员使用相同的端口,只要端口都不同,就可以为所有成员使用相同的主机名或 IP 地址。推荐的端口 group_replication_local_address 是 33061。请注意,您为此变量指定的值在START GROUP_REPLICATION发出语句并且组通信系统 (GCS) 可用之前不会生效。

  • group_replication_member_weight

    命令行格式 --group-replication-member-weight=#
    介绍 5.7.20
    系统变量 group_replication_member_weight
    范围 全球的
    动态的 是的
    类型 整数
    默认值 50
    最小值 0
    最大值 100
    单元 百分比

    可以分配给成员的百分比权重,以影响成员在故障转移时被选为主要成员的机会,例如,当现有主要成员离开单一主要组时。为成员分配数字权重以确保选出特定成员,例如在主要的计划维护期间或确保在发生故障转移时优先考虑某些硬件。

    对于成员配置如下的组:

    • member-1: group_replication_member_weight=30, server_uuid=aaaa

    • member-2: group_replication_member_weight=40, server_uuid=bbbb

    • member-3: group_replication_member_weight=40, server_uuid=cccc

    • member-4: group_replication_member_weight=40, server_uuid=dddd

    在选举新的初选期间,上述成员将被排序为member-2member-3member-4member-1。这导致 member-2 在发生故障转移时被选为新的主节点。有关详细信息,请参阅 第 17.5.1.1 节,“单主模式”

  • group_replication_poll_spin_loops

    命令行格式 --group-replication-poll-spin-loops=#
    介绍 5.7.17
    系统变量 group_replication_poll_spin_loops
    范围 全球的
    动态的 是的
    类型 整数
    默认值 0
    最小值 0
    最大值(64 位平台) 18446744073709551615
    最大值(32 位平台) 4294967295

    在线程等待更多传入网络消息之前,组通信线程等待通信引擎互斥体释放的次数。

  • group_replication_recovery_retry_count

    命令行格式 --group-replication-recovery-retry-count=#
    介绍 5.7.17
    系统变量 group_replication_recovery_retry_count
    范围 全球的
    动态的 是的
    类型 整数
    默认值 10
    最小值 0
    最大值 31536000

    正在加入的成员在放弃之前尝试连接到可用捐助者的次数。

  • group_replication_recovery_reconnect_interval

    命令行格式 --group-replication-recovery-reconnect-interval=#
    介绍 5.7.17
    系统变量 group_replication_recovery_reconnect_interval
    范围 全球的
    动态的 是的
    类型 整数
    默认值 60
    最小值 0
    最大值 31536000
    单元

    在组中未找到供体时重新连接尝试之间的睡眠时间(以秒为单位)。

  • group_replication_recovery_use_ssl

    命令行格式 --group-replication-recovery-use-ssl[={OFF|ON}]
    介绍 5.7.17
    系统变量 group_replication_recovery_use_ssl
    范围 全球的
    动态的 是的
    类型 布尔值
    默认值 OFF

    组复制恢复连接是否应使用 SSL。

  • group_replication_recovery_ssl_ca

    命令行格式 --group-replication-recovery-ssl-ca=value
    介绍 5.7.17
    系统变量 group_replication_recovery_ssl_ca
    范围 全球的
    动态的 是的
    类型 细绳

    包含可信 SSL 证书颁发机构列表的文件的路径。

  • group_replication_recovery_ssl_capath

    命令行格式 --group-replication-recovery-ssl-capath=value
    介绍 5.7.17
    系统变量 group_replication_recovery_ssl_capath
    范围 全球的
    动态的 是的
    类型 细绳

    包含受信任的 SSL 证书颁发机构证书的目录的路径。

  • group_replication_recovery_ssl_cert

    命令行格式 --group-replication-recovery-ssl-cert=value
    介绍 5.7.17
    系统变量 group_replication_recovery_ssl_cert
    范围 全球的
    动态的 是的
    类型 细绳

    用于建立安全连接的 SSL 证书文件的名称。

  • group_replication_recovery_ssl_key

    命令行格式 --group-replication-recovery-ssl-key=value
    介绍 5.7.17
    系统变量 group_replication_recovery_ssl_key
    范围 全球的
    动态的 是的
    类型 细绳

    用于建立安全连接的 SSL 密钥文件的名称。

  • group_replication_recovery_ssl_cipher

    命令行格式 --group-replication-recovery-ssl-cipher=value
    介绍 5.7.17
    系统变量 group_replication_recovery_ssl_cipher
    范围 全球的
    动态的 是的
    类型 细绳

    SSL 加密的允许密码列表。

  • group_replication_recovery_ssl_crl

    命令行格式 --group-replication-recovery-ssl-crl=value
    介绍 5.7.17
    系统变量 group_replication_recovery_ssl_crl
    范围 全球的
    动态的 是的
    类型 文件名

    包含证书吊销列表文件的目录的路径。

  • group_replication_recovery_ssl_crlpath

    命令行格式 --group-replication-recovery-ssl-crlpath=value
    介绍 5.7.17
    系统变量 group_replication_recovery_ssl_crlpath
    范围 全球的
    动态的 是的
    类型 目录名称

    包含证书吊销列表文件的目录的路径。

  • group_replication_recovery_ssl_verify_server_cert

    命令行格式 --group-replication-recovery-ssl-verify-server-cert[={OFF|ON}]
    介绍 5.7.17
    系统变量 group_replication_recovery_ssl_verify_server_cert
    范围 全球的
    动态的 是的
    类型 布尔值
    默认值 OFF

    使恢复过程检查捐赠者发送的证书中服务器的通用名称值。

  • group_replication_recovery_complete_at

    命令行格式 --group-replication-recovery-complete-at=value
    介绍 5.7.17
    系统变量 group_replication_recovery_complete_at
    范围 全球的
    动态的 是的
    类型 枚举
    默认值 TRANSACTIONS_APPLIED
    有效值

    TRANSACTIONS_CERTIFIED

    TRANSACTIONS_APPLIED

    状态转移后处理缓存事务时的恢复策略。此选项指定成员是否在收到加入组之前错过的所有事务后(TRANSACTIONS_CERTIFIED)或在收到并应用它们(TRANSACTIONS_APPLIED)后标记为在线。

  • group_replication_single_primary_mode

    命令行格式 --group-replication-single-primary-mode[={OFF|ON}]
    介绍 5.7.17
    系统变量 group_replication_single_primary_mode
    范围 全球的
    动态的 是的
    类型 布尔值
    默认值 ON
    笔记

    此系统变量是组范围的配置设置,需要完全重新启动复制组才能使更改生效。

    group_replication_single_primary_mode 指示该组自动选择一台服务器作为处理读/写工作负载的服务器。该服务器是主服务器,所有其他服务器都是辅助服务器。

    此系统变量是组范围的配置设置。它必须在所有组成员上具有相同的值,在组复制运行时不能更改,并且需要完全重新启动组(服务器引导 group_replication_bootstrap_group=ON)才能使值更改生效。有关安全引导已执行和验证事务的组的说明,请参阅 第 17.5.4 节,“重新启动组”

    如果组为此系统变量设置了值,并且加入成员为系统变量设置了不同的值,则加入成员不能加入组,直到值更改为匹配。如果群成员对该系统变量设置了值,而加入的成员不支持该系统变量,则无法加入该群。

    设置此变量会导致 忽略 ON任何设置 。group_replication_auto_increment_increment

  • group_replication_ssl_mode

    命令行格式 --group-replication-ssl-mode=value
    介绍 5.7.17
    系统变量 group_replication_ssl_mode
    范围 全球的
    动态的 是的
    类型 枚举
    默认值 DISABLED
    有效值

    DISABLED

    REQUIRED

    VERIFY_CA

    VERIFY_IDENTITY

    指定组复制成员之间连接的安全状态。

  • group_replication_start_on_boot

    命令行格式 --group-replication-start-on-boot[={OFF|ON}]
    介绍 5.7.17
    系统变量 group_replication_start_on_boot
    范围 全球的
    动态的 是的
    类型 布尔值
    默认值 ON

    服务器是否应该在服务器启动期间启动组复制。

  • group_replication_transaction_size_limit

    命令行格式 --group-replication-transaction-size-limit=#
    介绍 5.7.19
    系统变量 group_replication_transaction_size_limit
    范围 全球的
    动态的 是的
    类型 整数
    默认值 (≥ 5.7.38) 150000000
    默认值(≥ 5.7.19,≤ 5.7.37) 0
    最小值 0
    最大值 2147483647
    单元 字节

    配置复制组接受的最大事务大小(以字节为单位)。大于此大小的事务将由接收成员回滚,并且不会广播到组。大事务可能会导致复制组在内存分配方面出现问题,这可能导致系统变慢,或者在网络带宽消耗方面,这可能导致成员被怀疑失败,因为它正忙于处理大事务交易。

    当此系统变量设置为 0 时,该组接受的交易大小没有限制。在 MySQL 5.7.37 及之前的版本中,此系统变量的默认设置为 0。从 MySQL 5.7.38 开始,在 MySQL 8.0 中,默认设置为 150000000 字节(大约 143 MB)。根据您需要组容忍的最大消息大小调整此系统变量的值,请记住处理事务所花费的时间与其大小成正比。所有组成员的值 group_replication_transaction_size_limit 应该相同。有关大型事务的进一步缓解策略,请参阅 第 17.3.2 节,“组复制限制”

  • group_replication_unreachable_majority_timeout

    命令行格式 --group-replication-unreachable-majority-timeout=#
    介绍 5.7.19
    系统变量 group_replication_unreachable_majority_timeout
    范围 全球的
    动态的 是的
    类型 整数
    默认值 0
    最小值 0
    最大值 31536000
    单元

    配置遭受网络分区且无法连接到大多数成员的成员在离开组之前等待的时间。

    在一组 5 个服务器(S1、S2、S3、S4、S5)中,如果(S1、S2)和(S3、S4、S5)之间存在断开连接,则存在网络分区。第一组 (S1,S2) 现在处于少数状态,因为它无法联系超过一​​半的组。当大多数组(S3、S4、S5)保持运行时,少数组等待指定的时间重新连接网络。少数群体处理的任何交易都被阻止,直到 Group Replication 停止STOP GROUP REPLICATION在少数群体成员上使用。请注意, group_replication_unreachable_majority_timeout 如果在检测到多数丢失后在少数组中的服务器上设置它,则该设置无效。

    默认情况下,此系统变量设置为 0,这意味着由于网络分区而发现自己处于少数的成员永远等待离开组。如果配置为秒数,成员在离开组之前与大多数成员失去联系后等待这段时间。当指定的时间过去后,少数派处理的所有未决事务将被回滚,少数派分区中的服务器将进入该ERROR 状态。然后这些服务器按照系统变量指定的动作 group_replication_exit_state_action,可以是将自己设置为超级只读模式或关闭MySQL。

    警告

    当你有一个对称组时,例如只有两个成员(S0,S2),如果有网络分区并且没有多数,则在配置的超时后所有成员进入 ERROR状态。

组复制状态变量

本节介绍提供有关组复制信息的状态变量。该变量具有以下含义: