MYSQL--架构--MGR--理论--15--系统变量

本文详细介绍了MySQL Group Replication的多个系统变量,包括允许低版本节点加入、自动增量、引导组、流量控制、组恢复策略等,强调了动态变量的变更规则及其对组复制的影响,帮助理解并优化Group Replication的配置和性能。
摘要由CSDN通过智能技术生成

MYSQL–架构–MGR–理论–15–系统变量

1、介绍

  1. 每个变量以"group_replication"为前缀。
  2. 是特定于Group Replication插件的系统变量
  3. 动态变量:
    1. 可以在 节点 运行时进行更改
    2. 大多数更改仅在重新启动组复制插件时生效,不需要重新启动插件且可以生效的变量会特别注明

2、具体

2.1、group_replication_allow_local_lower_version_join

  1. 全局动态变量
  2. 默认值:OFF
  3. 允许 当前节点 加入该组,即使它的插件版本低于该组。

2.2、group_replication_auto_increment_increment

  1. 全局动态变量
  2. 默认值:7
  3. 最小值:1
  4. 最大值:65535
  5. 确定在 此节点实例上执行的事务 的连续列值之间的间隔。

2.3、group_replication_bootstrap_group

  1. 全局动态变量
  2. 默认值:OFF
  3. 配置此 节点 以引导该组。
    1. 此选项只能在一台 节点 上设置,并且只能在首次启动组或重新启动整个组时设置。
    2. 组在bootstrap之后,将此选项设置为OFF。
    3. 它应该动态地和配置文件中设置为OFF。
    4. 在组运行时使用此选项启动两个 节点 或重新启动一个 节点 可能会导致人为的脑裂情况,其中两个具有相同名称的独立组被引导。

2.4、group_replication_components_stop_timeout

  1. 全局动态变量
  2. 默认值是最大值:31536000
  3. 最小值:2
  4. 组复制在关闭时等待每个组件的超时(以秒为单位)。

2.5、group_replication_compression_threshold

  1. 全局动态变量
  2. 默认值:1000000
  3. 最小值:0
  4. 最大值:4294967295
  5. 以字节为单位的值(LZ4)强制压缩。
    1. 设置为零时,停用压缩。

2.6、group_replication_enforce_update_everywhere_checks

  1. 全局动态变量
  2. 默认值:OFF
  3. 在多主任何位置更新时,启用或禁用严格一致性检查。

2.7、group_replication_flow_control_applier_threshold

  1. 全局动态变量
  2. 默认值:25000
  3. 最小值:0
  4. 最大值:2147483647
  5. 指定应用程序队列中触发流控制的等待事务数。
    1. 可以在不重置组复制的情况下更改此变量。

2.8、group_replication_flow_control_certifier_threshold

  1. 全局动态变量
  2. 默认值:25000
  3. 最小值:0
  4. 最大值:2147483647
  5. 指定验证者队列中触发流控制的等待事务数。
    1. 可以在不重置组复制的情况下更改此变量。

2.9、group_replication_flow_control_hold_percent

  1. 全局动态变量
  2. 默认值:10
  3. 最小值:0
  4. 最大值:100
  5. 定义未使用的组配额的百分比,以允许流量控制下的群集赶上积压。
    1. 值为0意味着没有为追赶工作积压保留配额。

2.10、group_replication_flow_control_max_commit_quota

  1. 全局动态变量
  2. 默认值是最小值:0
  3. 最大值:2147483647
  4. 定义组的最大流量控制配额,或启用流量控制时任何时间段的最大可用配额。
    1. 值为0表示没有设置最大配额。
    2. 不能小于group_replication_flow_control_min_quota和group_replication_flow_control_min_recovery_quota。

2.11、group_replication_flow_control_member_quota_percent

  1. 全局动态变量
  2. 默认值是最小值:0
  3. 最大值:100
  4. 定义在计算配额时成员应该假定的配额百分比。
    1. 值为0表示配额应在上一期间作为写的成员之间平均分配。

2.12、group_replication_flow_control_min_quota

  1. 全局动态变量
  2. 默认值是最小值:0
  3. 最大值:2147483647
  4. 控制可分配给成员的最低流量控制配额,与最近执行的计算最小配额无关。
    1. 值为0表示没有最小配额。
    2. 不能大于group_replication_flow_control_max_commit_quota。

2.13、group_replication_flow_control_min_recovery_quota

  1. 全局动态变量
  2. 默认值是最小值:0
  3. 最大值:2147483647
  4. 控制因为组中的另一个恢复成员而分配给成员的最低配额,与最近执行的计算的最小配额无关。
    1. 值为0表示没有最小配额。
    2. 不能大于group_replication_flow_control_max_commit_quota。

2.14、group_replication_flow_control_mode

  1. 全局动态变量
  2. 默认值:QUOTA
  3. 有效值:DISABLED QUOTA
  4. 指定用于流控制的模式。
    1. 不需要重新启动插件且可以生效。

2.15、group_replication_force_members

  1. 对等地址列表,以逗号分隔的列表,例如:host1:port1,host2:port2。
  2. 用于强制新的组成员身份,其中被排除的成员不会收到新视图并被阻止。
    1. 需要手动终止已排除的 节点。
    2. 列表中的任何无效主机名都可能导致后续START GROUP_REPLICATION语句失败,因为它们可能会阻止组成员身份。

2.16、group_replication_group_name

  1. 此 节点 实例所属的组的名称。
  2. 必须是有效的UUID。
  3. 在二进制日志中为组复制事件设置GTID时,将在内部使用此UUID。

2.17、group_replication_group_seeds

  1. 一个组成员列表,提供一个成员A,加入组的成员B所需的数据与成员A同步。
  2. 该列表由种子成员的网络地址组成,指定为逗号分隔列表,例如:host1:port1,host2:port2。
  3. 通常此列表由该组的所有成员组成,但您可以选择组成员的子集作为种子。
  4. 该列表必须至少包含一个有效的成员地址。
    1. 启动组复制时,将验证每个地址。
    2. 如果列表不包含任何有效的主机名,则START GROUP_REPLICATION将失败。

2.18、group_replication_ip_whitelist

  1. 默认值:AUTOMATIC
    1. 允许来自主机上私有网络的连接。 扫描主机上的活动网卡,并将具有私有子网上地址的活动网卡自动添加到允许列表中。
  2. 指定允许哪些主机连接到该组。

2.19、group_replication_local_address

  1. 成员为来自其他成员的连接提供的网络地址
  2. 格式为: host:port
  3. 该地址必须可由该组的所有成员访问,因为它由内部组通信系统XCOM使用。
  4. 其他组复制成员通过此host:port联系此成员以进行所有内部组通信。

2.20、group_replication_member_weight

  1. 全局动态变量
  2. 默认值:50
  3. 最小值:0
  4. 最大值100
  5. 权重百分比,当主成员在发生故障转移时被选为master的可能性
  6. 权重越高,自动选举为primary节点的优先级就越高。

2.21、对于成员配置如下的组:

member-1:
group_replication_member_weight = 10,server_uuid = aaaa
 
member-2:
group_replication_member_weight = 20,server_uuid = bbbb
 
member-3:
group_replication_member_weight=30, server_uuid=cccc

 

当发送故障时候,member-3会被选举为master,因为它的权重最高。

2.22、group_replication_poll_spin_loops

  1. 最小值:0
  2. 最大值:18446744073709551615
  3. 通信线程在线程等待更多传入网络消息之前等待通信引擎互斥锁被释放的次数。

2.23、group_replication_recovery_retry_count

  1. 默认值:10
  2. 最小值:0
  3. 最大值:31536000
  4. 在放弃之前,新节点尝试连接到供体的次数。

2.24、group_replication_recovery_reconnect_interval

  1. 默认值:60
  2. 最小值:0
  3. 最大值:31536000
  4. 定义 新节点 尝试所有可能的供体服务器后,应该休眠的时间。
  5. 以秒为单位

2.25、group_replication_recovery_complete_at

  1. 默认值:TRANSACTIONS_APPLIED
  2. 有效值 TRANSACTIONS_APPLIED TRANSACTIONS_CERTIFIED
  3. 在状态转移后处理缓存事务时的恢复策略。
    1. 此选项指定成员在被标记在线之后,接收所有被丢失的事务(TRANSACTIONS_CERTIFIED)或者 在被接受后应用他们(TRANSACTIONS_APPLIED)。

2.26、group_replication_gtid_assignment_block_size

  1. 默认值:1000000
  2. 最小值:1
  3. 最大值:9223372036854775807
  4. 为每个成员保留的连续GTID数,每个成员消耗这些块并在需要时储备更多。

2.27、group_replication_single_primary_mode

  1. 默认值:ON
  2. on:单主模式
  3. off:多主模式

2.28、group_replication_start_on_boot

  1. 默认值:on
  2. 节点 启动期间是否应启动组复制。

2.29、group_replication_transaction_size_limit

  1. 默认最小值:0
    1. 组接受的事务大小没有限制,并且可能存在导致组失败的大型事务的风险。
  2. 最大值:2147483647
  3. 单个事务大小上限。
    1. 大于此大小的事务会回滚。
    2. 以字节为单位
    3. 使用此选项可避免大型事务导致组失败。
      1. 大型事务可能导致组的问题,无论是在内存分配还是网络带宽消耗方面,这可能导致故障检测器触发,因为给定成员在忙于处理大事务时无法访问。
    4. 根据组中所需的工作负载大小调整此变量的值。

2.30、group_replication_unreachable_majority_timeout

  1. 默认最小值:0
    1. 意味着由于网络分区而发现自己处于少数状态的成员会永远等待连接该组。
  2. 最大值: 31536000
  3. 配置遭受网络分区且无法连接到多数成员的成员在离开组之前等待多长时间。

2.30.1、设置为0

在一组 5个 点(S1,S2,S3,S4,S5)中,如果(S1,S2)和(S3,S4,S5)之间存在断开,则存在网络分区。

  1. 第2组(S3,S4,S5)仍在运行
  2. 第1组(S1,S2)现在属于少数,因为它没有超过一半的组,将永远等待网络重新连接,任何事务都将被阻止,直到少数成员使用STOP GROUP REPLICATION停止组复制。

2.30.2、设置x,且x>0

  1. 成员与大多数成员失去联系后,离开组之前会等待x秒
  2. 将回滚所有待处理事务,并且少数分区中的 节点 将移至ERROR状态,并将其自身设置为super_read_only = ON模式。
  3. 如果你有一个对称组,例如只有两个成员(S0,S2),如果有一个网络分区并且没有多数,则在配置的超时后,所有成员都会关闭并进入ERROR状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值