本节列出了特定于 Group Replication 插件的系统变量。每个配置选项都以“”为前缀group_replication
。
Group Replication 的大多数系统变量被描述为动态的,它们的值可以在服务器运行时更改。STOP GROUP_REPLICATION
但是,在大多数情况下,更改仅在您使用语句后跟语句停止并重新启动组成员上的组复制后生效
START GROUP_REPLICATION
。对以下系统变量的更改无需停止并重新启动 Group Replication 即可生效:
组复制的大多数系统变量在不同的组成员上可以有不同的值。对于以下系统变量,建议在一个组的所有成员上设置相同的值,以避免不必要的事务回滚、消息传递失败或消息恢复失败:
组复制组成员上的一些系统变量,包括一些组复制特定的系统变量和一些通用系统变量,是组范围的配置设置。这些系统变量必须在所有组成员上具有相同的值,在组复制运行时不能更改,并且需要完全重新启动组(由服务器引导
group_replication_bootstrap_group=ON
)才能使值更改生效。这些条件适用于以下系统变量:
如果将组复制的许多系统变量作为命令行参数传递给服务器,则在服务器启动期间不会完全验证它们。这些系统变量包括
group_replication_group_name
、group_replication_single_primary_mode
、group_replication_force_members
、SSL 变量和流量控制系统变量。它们仅在服务器启动后才得到充分验证。START GROUP_REPLICATION
在发出语句 之前,不会验证为组成员指定 IP 地址或主机名的组复制系统变量。Group Replication 的 Group Communication System (GCS) 直到那时才可用于验证值。
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
不会使新成员与该组兼容,并允许它加入该组,而无需任何保护措施来防止现有成员的不兼容行为。为保证新成员的正确操作,请注意以下两点:在具有较低主要版本的服务器加入组之前,停止对该服务器的所有写入。
从具有较低主要版本的服务器加入组的点开始,停止对组中其他服务器的所有写入。
如果没有这些预防措施,具有较低主要版本的服务器可能会遇到困难并因错误而终止。
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_mode
ON
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_only
为ON
)。此设置是 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_quota
和group_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=value
介绍 5.7.17 系统变量 group_replication_group_name
范围 全球的 动态的 是的 类型 细绳 此服务器实例所属的组的名称。必须是有效的 UUID。在为二进制日志中的组复制事件设置 GTID 时,会在内部使用此 UUID。
重要的必须使用唯一的 UUID。
-
命令行格式 --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) 自动扫描主机上的活动接口,并识别那些地址位于私有子网上的接口。这些地址和localhost
IPv4 的 IP 地址用于创建组复制白名单。有关地址自动列入白名单的范围列表,请参阅 第 17.6.1 节,“组复制 IP 地址白名单”。私有地址的自动白名单不能用于来自私有网络外部服务器的连接。对于位于不同计算机上的服务器实例之间的组复制连接,您必须提供公共 IP 地址并将这些地址指定为显式允许列表。如果您为白名单指定任何条目,则不会自动添加私有地址,因此如果您使用其中任何一个,则必须明确指定它们。
localhost
IP 地址是自动添加 的。作为
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=aaaamember-2
: group_replication_member_weight=40, server_uuid=bbbbmember-3
: group_replication_member_weight=40, server_uuid=ccccmember-4
: group_replication_member_weight=40, server_uuid=dddd
在选举新的初选期间,上述成员将被排序为
member-2
、member-3
、member-4
和member-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=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
状态。
本节介绍提供有关组复制信息的状态变量。该变量具有以下含义:
group_replication_primary_member
当组在单主模式下运行时显示主要成员的 UUID。如果组在多主模式下运行,则显示空字符串。请参阅 第 17.5.1.3 节,“查找主节点”。