参考官方文档:
https://dev.mysql.com/doc/refman/5.7/en/group-replication-options.html
这些是特定于Group Replication插件的系统变量。 每个配置选项都以“group_replication”为前缀。
重要:
尽管大多数变量都被描述为动态变量,并且可以在服务器运行时进行更改,但大多数更改仅在重新启动组复制插件时生效。 不需要重新启动插件的情况下可以更改的变量在本节中特别注明。
- group_replication_allow_local_lower_version_join
全局动态变量,默认值是 OFF
允许当前服务器加入该组,即使它的插件版本低于该组。
- group_replication_auto_increment_increment
全局动态变量,默认值是7,小值是1,大值是65535
确定在此服务器实例上执行的事务的连续列值之间的间隔。
- group_replication_bootstrap_group
全局动态变量,默认值是OFF
配置此服务器以引导该组。 此选项只能在一台服务器上设置,并且只能在启动组或重新启动整个组时设置。 组在bootstrap之后,将此选项设置为OFF。 它应该动态地和配置文件中设置为OFF。 在组运行时使用此选项启动两个服务器或重新启动一个服务器可能会导致人为的裂脑情况,其中两个具有相同名称的独立组被引导。
- group_replication_components_stop_timeout
全局动态变量,默认值是大值 31536000,小值为2
组复制在关闭时等待每个组件的超时(以秒为单位)。
- group_replication_compression_threshold
全局动态变量,默认值是 1000000,小值是0,大值是 4294967295
以字节为单位的值(LZ4)强制压缩。 设置为零时,停用压缩。
- group_replication_enforce_update_everywhere_checks
全局动态变量 默认值是OFF
在多主任何位置更新时,启用或禁用严格一致性检查。
- group_replication_flow_control_applier_threshold
全局动态变量 默认值是25000 小值是0 大值是 2147483647
指定应用程序队列中触发流控制的等待事务数。 可以在不重置组复制的情况下更改此变量。
- group_replication_flow_control_certifier_threshold
全局动态变量 默认值是25000 小值是0 大值是 2147483647
指定验证者队列中触发流控制的等待事务数。 可以在不重置组复制的情况下更改此变量。
- group_replication_flow_control_hold_percent
全局动态变量 默认值是10 小值是0 大值是 100
定义未使用的组配额的百分比,以允许流量控制下的群集赶上积压。 值为0意味着没有为追赶工作积压保留配额。
- group_replication_flow_control_max_commit_quota
全局动态变量 默认值是小值0 大值是 2147483647
定义组的大流量控制配额,或启用流量控制时任何时间段的大可用配额。 值为0表示没有设置大配额。 不能小于group_replication_flow_control_min_quota和group_replication_flow_control_min_recovery_quota。
- group_replication_flow_control_member_quota_percent
全局动态变量 默认值是小值0 大值是 100
定义在计算配额时成员应该假定的配额百分比。 值为0表示配额应在上一期间作为写的成员之间平均分配。
- group_replication_flow_control_min_quota
全局动态变量 默认值是小值0 大值是 2147483647
控制可分配给成员的低流量控制配额,与近执行的计算小配额无关。 值为0表示没有小配额。 不能大于group_replication_flow_control_max_commit_quota。
- group_replication_flow_control_min_recovery_quota
全局动态变量 默认值是小值0 大值是 2147483647
控制因为组中的另一个恢复成员而分配给成员的低配额,与近执行的计算的小配额无关。 值为0表示没有小配额。 不能大于group_replication_flow_control_max_commit_quota。
- group_replication_flow_control_mode
全局动态变量 默认值是QUOTA 有效值 DISABLED QUOTA
指定用于流控制的模式。 可以在不重置组复制的情况下更改此变量。
- group_replication_force_members
对等地址列表,以逗号分隔的列表,例如host1:port1,host2:port2。 此选项用于强制新的组成员身份,其中被排除的成员不会收到新视图并被阻止。 您需要手动终止已排除的服务器。 列表中的任何主机名都可能导致后续START GROUP_REPLICATION语句失败,因为它们可能会阻止组成员身份。
- group_replication_group_name
此服务器实例所属的组的名称。 必须是有效的UUID。 在二进制日志中为组复制事件设置GTID时,将在内部使用此UUID。
重要:
必须使用UUID
- group_replication_group_seeds
一个组成员列表,提供一个成员,加入组的成员所需的数据与此成员同步。 该列表由种子成员的网络地址组成,指定为逗号分隔列表,例如host1:port1,host2:port2。
重要:
这些地址不能是成员的SQL主机名和端口。
通常此列表由该组的所有成员组成,但您可以选择组成员的子集作为种子。 该列表必须至少包含一个有效的成员地址。 启动组复制时,将验证每个地址。 如果列表不包含任何有效的主机名,则START GROUP_REPLICATION将失败。
- group_replication_ip_whitelist
默认值 AUTOMATIC
指定允许哪些主机连接到该组。 默认情况下,此系统变量设置为AUTOMATIC,允许来自主机上私有网络的连接。 扫描主机上的活动网卡,并将具有私有子网上地址的活动网卡自动添加到允许列表中。
- group_replication_local_address
成员为来自其他成员的连接提供的网络地址,指定为host:port格式化字符串。 该地址必须可由该组的所有成员访问,因为它由内部组通信系统XCOM使用。
警告:
请勿使用此地址与组员进行通信。
其他组复制成员通过此host:port联系此成员以进行所有内部组通信。 这不是MySQL服务器SQL协议主机和端口。
- 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
在选择新的主要成员时,上面的成员将被分类为成员-2,成员-3,成员-4和成员-1 存储。 这导致成员-2在故障转移时被选为新的主要成员。
--权重相同,按UUID 排序
- group_replication_poll_spin_loops
默认为小值0 ,大值 18446744073709551615
组线程通信线程在线程等待更多传入网络消息之前等待通信引擎互斥锁被释放的次数。
- group_replication_recovery_retry_count
默认值是10,小值 0 ,大值 31536000
在放弃之前,加入的成员尝试连接到可用捐赠者的次数。
- group_replication_recovery_reconnect_interval
默认值 60 ,小值 0 大值 31536000
重新连接尝试之间的休眠时间(以秒为单位),当组中没有发现捐赠者时。
- group_replication_recovery_complete_at
默认值 TRANSACTIONS_APPLIED,有效值 TRANSACTIONS_APPLIED TRANSACTIONS_CERTIFIED
在状态转移后处理缓存事务时的恢复策略。 此选项指定成员在被标记在线之后,接收所有被丢失的事务 (TRANSACTIONS_CERTIFIED) 或者 在被接受后应用他们 (TRANSACTIONS_APPLIED)。
- group_replication_gtid_assignment_block_size
默认值 1000000 ,小值 1 大值 9223372036854775807
为每个成员保留的连续GTID数。 每个成员消耗这些块并在需要时储备更多。
- group_replication_single_primary_mode
默认是 ON
指示组自动选择单个服务器作为处理读/写工作负载的服务器。 此服务器是主服务器,所有其他服务器都是SECONDARIES。
- group_replication_start_on_boot
默认是 on
服务器启动期间是否应启动组复制。
- group_replication_transaction_size_limit
默认为小值0 ,大值 2147483647
配置组接受的大事务大小(以字节为单位)。 大于此大小的事务会回滚。 使用此选项可避免大型事务导致组失败。 大型事务可能导致组的问题,无论是在内存分配还是网络带宽消耗方面,这可能导致故障检测器触发,因为给定成员在忙于处理大事务时无法访问。 设置为0时,组接受的事务大小没有限制,并且可能存在导致组失败的大型事务的风险。 根据组中所需的工作负载大小调整此变量的值。
- group_replication_unreachable_majority_timeout
默认为小值0,大值为 31536000
配置遭受网络分区且无法连接到多数成员的成员在离开组之前等待多长时间。 默认设置为0,这意味着由于网络分区而发现自己处于少数状态的成员会永远等待连接该组。 在一组5个服务器(S1,S2,S3,S4,S5)中,如果(S1,S2)和(S3,S4,S5)之间存在断开,则存在网络分区。 组(S1,S2)现在属于少数,因为它不能联系超过一半的组。 虽然大多数组(S3,S4,S5)仍在运行,但少数群体将永远等待网络重新连接。 少数组处理的任何事务都将被阻止,直到少数成员使用STOP GROUP REPLICATION停止组复制。
如果配置了秒数,则成员与大多数成员失去联系后离开组之前会等待这段时间。 将回滚所有待处理事务,并且少数分区中的服务器将移至ERROR状态并将其自身设置为super_read_only = ON模式。
警告:
如果你有一个对称组,例如只有两个成员(S0,S2),如果有一个网络分区并且没有多数,则在配置的超时后,所有成员都会关闭并进入ERROR状态。