• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 组复制系统变量

    本节列出了特定于组复制插件的系统变量。每个配置选项均以“group_replication”。

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

    • group_replication_flow_control_applier_threshold
    • group_replication_flow_control_certifier_threshold
    • group_replication_flow_control_mode

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

    • group_replication_auto_increment_increment
    • group_replication_communication_max_message_size
    • group_replication_compression_threshold
    • group_replication_message_cache_size
    • group_replication_transaction_size_limit

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

    • group_replication_single_primary_mode
    • group_replication_enforce_update_everywhere_checks
    • group_replication_gtid_assignment_block_size
    • default_table_encryption
    • lower_case_table_names
    • transaction_write_set_extraction

    从MySQL 8.0.16开始,您可以在组仍在运行时使用group_replication_switch_to_single_primary_mode()group_replication_switch_to_multi_primary_mode() UDF更改group_replication_single_primary_mode and 的值group_replication_enforce_update_everywhere_checks。有关更多信息,请参见“配置在线组”。

    重要
    • 如果将组复制的许多系统变量作为命令行参数传递给服务器,则它们不会在服务器启动期间得到完全验证。这些系统变量包括group_replication_group_namegroup_replication_single_primary_modegroup_replication_force_members,的SSL变量和流量控制系统变量。仅在服务器启动后才对它们进行完全验证。
    • START GROUP_REPLICATION在发出语句之前,不会验证为组成员指定IP地址或主机名的用于组复制的系统变量。在此之前,组复制的组通信系统(GCS)不可用于验证值。

    组复制插件特有的系统变量如下:

    • group_replication_allow_local_lower_version_join

      属性
      命令行格式--group-replication-allow-local-lower-version-join[={OFF|ON}]
      系统变量group_replication_allow_local_lower_version_join
      范围Global
      动态
      SET_VAR提示适用没有
      类型布尔型
      默认值OFF

      允许当前服务器加入该组,即使它运行的MySQL Server版本低于该组。使用默认设置OFF,如果服务器运行的版本比现有组成员的版本低,则不允许它们加入复制组。此标准策略确保组中的所有成员都能够交换消息和应用事务。请注意,运行MySQL 8.0.17或更高版本的成员在检查其兼容性时会考虑该发行版的补丁版本。运行MySQL 8.0.16或更低版本或MySQL 5.7的成员仅考虑主要版本。

      仅在以下情况下设置group_replication_allow_local_lower_version_joinON

      • 必须在紧急情况下将服务器添加到组中,以提高组的容错能力,并且仅旧版本可用。
      • 您想回滚一个或多个复制组成员的升级,而无需关闭整个组并重新引导它。
      警告

      将此选项设置为ON不会使新成员与组兼容,并允许其加入组而没有任何措施防止现有成员的不兼容行为。为了确保新成员的正确操作,请采取以下两项预防措施:

      1. 在运行较低版本的服务器加入该组之前,请停止该服务器上的所有写操作。
      2. 从运行较低版本的服务器加入该组的位置开始,停止该组中其他服务器上的所有写操作。

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

    • group_replication_auto_increment_increment

      属性
      命令行格式--group-replication-auto-increment-increment=#
      系统变量group_replication_auto_increment_increment
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值7
      最低值1
      最大值65535

      确定在此服务器实例上执行的事务的连续列值之间的间隔。该系统变量在所有组成员上应具有相同的值。在服务器上启动组复制时,服务器系统变量的auto_increment_increment值更改为该值,并且服务器系统变量的auto_increment_offset值更改为服务器ID。这些设置避免为组成员上的写入选择重复的自动增量值,这会导致事务回滚。停止组复制时,将还原更改。仅当auto_increment_incrementauto_increment_offset每个参数的默认值均为1。如果已经从默认值修改了它们的值,则组复制不会更改它们。从MySQL 8.0开始,当组复制处于只有一个服务器写入的单主模式下时,系统变量也不会被修改。

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

    • group_replication_autorejoin_tries

      属性
      命令行格式--group-replication-autorejoin-tries=#
      介绍了8.0.16
      系统变量group_replication_autorejoin_tries
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值0
      最低值0
      最大值2016

      指定如果成员被驱逐或在group_replication_unreachable_majority_timeout达到设置之前无法联系大部分成员,则尝试自动重新加入该成员的次数。默认设置为0,表示该成员不尝试重新加入,而是继续执行group_replication_exit_state_action系统变量指定的操作。您最多可以指定2016次尝试。

      如果您指定尝试次数,则在达到成员的驱逐或无法达到的多数时间超时时,它将尝试重新加入(使用当前插件选项值),然后继续进行进一步的自动重新尝试,直到达到指定的尝试次数。自动重新加入尝试失败后,成员将在下一次尝试之前等待5分钟。在自动重新加入过程中,成员保持超级只读模式,并ERROR在其复制组视图上显示状态。您可以随时使用STOP GROUP_REPLICATION语句或关闭服务器。如果指定的尝试次数已用尽,而该成员没有重新加入或停止,则该成员将继续执行group_replication_exit_state_action系统变量指定的操作。

      有关使用此选项的更多信息,请参见“对故障检测和网络分区的响应”。

    • group_replication_bootstrap_group

      属性
      命令行格式--group-replication-bootstrap-group[={OFF|ON}]
      系统变量group_replication_bootstrap_group
      范围Global
      动态
      SET_VAR提示适用没有
      类型布尔型
      默认值OFF

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

    • group_replication_clone_threshold

      属性
      命令行格式--group-replication-clone-threshold=#
      介绍了8.0.17
      系统变量group_replication_clone_threshold
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值9223372036854775807
      最低值1
      最大值9223372036854775807

      现有成员(捐赠者)和加入成员(接收者)之间的事务间隔(作为多个事务),在分布式恢复过程中触发使用远程克隆操作进行状态转移到加入成员的事务间隔。如果加入成员和合适的捐助者之间的事务间隔超过阈值,则组复制将通过远程克隆操作开始分布式恢复。如果事务间隔低于阈值,或者在技术上无法进行远程克隆操作,则组复制将直接从授权者的二进制日志进行状态转移。

      警告

      不要group_replication_clone_threshold在活动组中使用较低的设置。如果在进行远程克隆操作的同时在组中发生了超过阈值的事务,则加入成员在重新启动后会再次触发远程克隆操作,并且可以无限期地继续进行。为避免这种情况,请确保将阈值设置为一个数字,该数字应大于在远程克隆操作所花费的时间段内组中可能发生的事务数。

      要使用此功能,必须预先设置供体和连接成员以支持克隆。有关说明,请参见“克隆分布式恢复”。进行远程克隆操作时,组复制将为您管理它,包括设置了所需的服务器重新启动group_replication_start_on_boot=ON。如果不是,则必须手动重新启动服务器。远程克隆操作替换了加入成员上的现有数据字典,但是如果加入成员具有其他组成员上不存在的其他事务,则组复制会检查并且不会继续进行,因为克隆操作会擦除这些事务。

      默认设置(这是GTID中事务的最大允许序列号)意味着实际上总是尝试从捐赠者的二进制日志进行状态转移,而不是克隆。但是,请注意,如果不可能从捐赠者的二进制日志进行状态转移,则组复制始终尝试执行克隆操作,而不论您的阈值如何,例如,因为加入成员所需的事务在任何现有的二进制日志中均不可用小组成员。如果您根本不想在复制组中使用克隆,请不要在成员上安装克隆插件。

    • group_replication_communication_debug_options

      属性
      命令行格式--group-replication-communication-debug-options=value
      系统变量group_replication_communication_debug_options
      范围Global
      动态
      SET_VAR提示适用没有
      类型string
      默认值GCS_DEBUG_NONE
      有效值

      GCS_DEBUG_NONE

      GCS_DEBUG_BASIC

      GCS_DEBUG_TRACE

      XCOM_DEBUG_BASIC

      XCOM_DEBUG_TRACE

      GCS_DEBUG_ALL

      配置调试消息的级别,以提供给不同的组复制组件,例如组通信系统(GCS)和组通信引擎(XCom,Paxos变体)。调试信息存储在GCS_DEBUG_TRACE数据目录中的文件中。

      可以组合指定为字符串的一组可用选项。提供以下选项:

      • GCS_DEBUG_NONE禁用GCS和XCOM的所有调试级别
      • GCS_DEBUG_BASIC在GCS中启用基本调试信息
      • GCS_DEBUG_TRACE在GCS中启用跟踪信息
      • XCOM_DEBUG_BASIC在XCOM中启用基本调试信息
      • XCOM_DEBUG_TRACE在XCOM中启用跟踪信息
      • GCS_DEBUG_ALL为GCS和XCOM启用所有调试级别

      将调试级别设置为GCS_DEBUG_NONE仅在没有任何其他选项的情况下才有效。将调试级别设置为GCS_DEBUG_ALL覆盖所有其他选项。

    • group_replication_communication_max_message_size

      属性
      命令行格式--group-replication-communication-max-message-size=#
      介绍了8.0.16
      系统变量group_replication_communication_max_message_size
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值10485760
      最低值0
      最大值1073741824

      指定组复制通信的最大邮件大小。大于此大小的邮件将自动拆分为多个片段,这些片段将分别发送并由收件人重新组合。

      默认情况下,最大消息大小设置为10485760字节(10 MiB),这意味着默认情况下,MySQL 8.0.16发行版中使用碎片。允许的最大值与slave_max_allowed_packet系统变量的最大值相同,为1073741824字节(1 GB)。的设置group_replication_communication_max_message_size必须小于该slave_max_allowed_packet设置,因为应用程序线程无法处理大于的消息片段slave_max_allowed_packet。要关闭分段,请为指定零值group_replication_communication_max_message_sizegroup_replication_communication_max_message_size所有组成员的值都应该相同。

      为了使复制组的成员使用分段,该组的通信协议版本必须为MySQL 8.0.16或更高版本。使用group_replication_get_communication_protocol() UDF参见组的通信协议版本。如果使用的是较低版本,则组成员不会对消息进行分段。group_replication_set_communication_protocol()如果所有组成员都支持,则可以使用 UDF将组的通信协议设置为更高版本。有关更多信息,请参见“设置组的通信协议版本”。

    • group_replication_components_stop_timeout

      属性
      命令行格式--group-replication-components-stop-timeout=#
      系统变量group_replication_components_stop_timeout
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值31536000
      最低值2
      最大值31536000

      关闭时,组复制等待每个组件的超时时间(以秒为单位)。

    • group_replication_compression_threshold

      属性
      命令行格式--group-replication-compression-threshold=#
      系统变量group_replication_compression_threshold
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值1000000
      最低值0
      最大值4294967295

      阈值(以字节为单位),高于该阈值将压缩应用于组成员之间发送的消息。如果将此系统变量设置为零,则禁用压缩。group_replication_compression_threshold所有组成员的值都应该相同。

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

      有关更多信息,请参见“消息压缩”。

    • group_replication_consistency

      属性
      命令行格式--group-replication-consistency=value
      介绍了8.0.14
      系统变量group_replication_consistency
      范围Global, Session
      动态
      SET_VAR提示适用没有
      类型列举
      默认值EVENTUAL
      有效值

      EVENTUAL

      BEFORE_ON_PRIMARY_FAILOVER

      BEFORE

      AFTER

      BEFORE_AND_AFTER

      控制组提供的事务一致性保证。您可以全局或每个事务配置一致性。还配置单个主要组中新当选的主要使用的防护机制。对于只读(RO)和读写(RW)事务,都必须考虑该变量的影响。以下列表显示了此变量的可能值,以提高事务一致性保证的顺序:

      • EVENTUAL

        RO和RW事务都不等待执行之前的事务。这是添加此变量之前组复制的行为。RW交易不等待其他成员申请交易。这意味着可以先在一个成员上将事务外部化。这也意味着,如果发生主节点故障转移,则新的主节点可以在应用所有先前的主节点事务之前接受新的RO和RW事务。RO事务可能导致过时的值,RW事务可能由于冲突而导致回滚。

      • BEFORE_ON_PRIMARY_FAILOVER

        保留(不应用)具有从旧主数据库应用积压的新选举基数的新RO或RW事务,直到应用了任何积压。这样可以确保在发生主故障转移时,无论有意还是无意,客户端始终可以在主故障上看到最新的值。这保证了一致性,但意味着在应用积压的情况下,客户端必须能够处理延迟。通常,此延迟应最小,但确实取决于积压的大小。

      • BEFORE

        RW事务在应用之前会等待所有先前的事务完成。RO事务在执行之前会等待所有先前的事务完成。这样可以确保该事务仅通过影响事务的延迟来读取最新值。通过确保仅在RO事务上使用同步,这减少了每个RW事务上同步的开销。此一致性级别还包括所提供的一致性保证BEFORE_ON_PRIMARY_FAILOVER

      • AFTER

        RW事务等待,直到其更改已应用于所有其他成员。此值对RO交易没有影响。此模式确保在将事务提交到本地成员时,任何后续事务都将读取任何组成员上的写入值或更新值。将此模式与主要用于RO操作的组一起使用,以确保已提交的RW事务一旦提交便会应用到任何地方。您的应用程序可以使用它来确保后续读取读取包括最新写入在内的最新数据。这样可以减少每个RO事务的同步开销,通过确保仅在RW事务上使用同步。此一致性级别还包括以下方面提供的一致性保证:BEFORE_ON_PRIMARY_FAILOVER

      • BEFORE_AND_AFTER

        RW事务等待1)所有之前的事务完成,然后再应用; 2)等待其更改已应用于其他成员。RO事务在执行之前会等待所有先前的事务完成。此一致性级别还包括所提供的一致性保证BEFORE_ON_PRIMARY_FAILOVER

      GROUP_REPLICATION_ADMIN权限才能更改该系统变量的全局设置。有关更多信息,请参见“事务一致性保证”。

    • group_replication_enforce_update_everywhere_checks

      属性
      命令行格式--group-replication-enforce-update-everywhere-checks[={OFF|ON}]
      系统变量group_replication_enforce_update_everywhere_checks
      范围Global
      动态
      SET_VAR提示适用没有
      类型布尔型
      默认值OFF

      对各处的多主更新启用或禁用严格一致性检查。默认设置是禁用检查。在单主要模式下,必须在所有组成员上禁用此选项。在多主要模式下,启用此选项后,将按以下方式检查语句以确保它们与多主要模式兼容:

      • 如果事务是在SERIALIZABLE隔离级别下执行的,则在与组同步时,其提交将失败。
      • 如果事务针对具有具有级联约束的外键的表执行,则该事务在与组同步时将无法提交。

      此系统变量是组范围的配置设置。它在所有组成员上必须具有相同的值,并且在组复制运行时不能更改,并且需要完全重新引导组(服务器使用进行引导group_replication_bootstrap_group=ON)才能使值更改生效。从MySQL 8.0.16开始,您可以在组仍在运行时使用group_replication_switch_to_single_primary_mode()group_replication_switch_to_multi_primary_mode()UDF更改此系统变量的值。有关更多信息,请参见“配置在线组”。

    • group_replication_exit_state_action

      属性
      命令行格式--group-replication-exit-state-action=value
      介绍了8.0.12
      系统变量group_replication_exit_state_action
      范围Global
      动态
      SET_VAR提示适用没有
      类型列举
      默认值(≥8.0.16)READ_ONLY
      默认值(≥8.0.12,≤8.0.15)ABORT_SERVER
      有效值(≥8.0.18)

      ABORT_SERVER

      OFFLINE_MODE

      READ_ONLY

      有效值(≥8.0.12,≤8.0.17)

      ABORT_SERVER

      READ_ONLY

      配置当服务器实例无意中离开组时(例如,在遇到应用程序错误后,丢失多数数的情况下,或者由于怀疑超时而使该组的另一个成员驱逐它时),组复制的行为方式。在成员丧失多数的情况下,成员离开组group_replication_unreachable_majority_timeout的超时时间由group_replication_member_expel_timeout系统变量设置,怀疑的超时时间由系统变量设置。请注意,被驱逐的组成员直到重新连接到该组才知道被驱逐了,因此仅当该成员设法重新连接,或者该成员对自己提出怀疑并驱逐自己时,才执行指定的操作。

      如果成员因怀疑超时或失去多数而被驱逐,则如果该成员的 group_replication_autorejoin_tries系统变量设置为指定了自动重新加入尝试的次数,则在超级只读模式下,该成员首先进行指定次数的尝试,然后执行由指定的操作group_replication_exit_state_action。如果发生应用错误,则不会进行自动重新尝试,因为这些尝试不可恢复。

      group_replication_exit_state_action被设置为READ_ONLY,如果构件无意中离开基或耗尽其自动重新加入的尝试中,例如开关的MySQL超只读模式(通过设置系统变量super_read_onlyON)。在READ_ONLY退出行动是对MySQL 8.0版本中引入的系统变量之前的行为,并从MySQL 8.0.16再次成为默认的。

      group_replication_exit_state_action被设置为OFFLINE_MODE,如果构件无意中离开基或耗尽其自动重新加入的尝试中,例如开关的MySQL到脱机模式(通过设置系统变量offline_modeON)。在这种模式下,已连接的客户端用户将在其下一个请求时断开连接,并且除具有CONNECTION_ADMINSUPER特权的客户端用户以外,不再接受连接。组复制还将系统变量设置super_read_onlyON,因此,即使客户端已连接SUPER特权,客户端也无法进行任何更新。该OFFLINE_MODE出口动作可从MySQL 8.0.18。

      group_replication_exit_state_action设置为ABORT_SERVER,如果成员无意退出该组或耗尽其自动归队的尝试中,例如关闭MySQL的。在将系统变量添加到MySQL 8.0.15(含)时,此设置是MySQL 8.0.12的默认设置。

      重要

      如果在成员成功加入组之前发生故障,则不会执行指定的退出操作。如果在本地配置检查期间失败,或者加入成员的配置与组的配置不匹配,就是这种情况。在这种情况下,super_read_only系统变量将保留其原始值,继续接受连接,并且服务器不会关闭MySQL。为确保服务器在组复制未启动时不能接受更新,因此我们建议super_read_only=ON在启动时在服务器的配置文件中进行设置,该组复制将更改为OFF成功启动后在主要成员上运行。当服务器配置为在服务器引导(group_replication_start_on_boot=ON)上启动组复制时,此保护措施尤其重要,但是在使用START GROUP_REPLICATION命令手动启动组复制时,此保护措施也很有用。

      有关使用此选项的更多信息,以及执行退出操作的情况的完整列表,请参见“退出操作”。

    • group_replication_flow_control_applier_threshold

      属性
      命令行格式--group-replication-flow-control-applier-threshold=#
      系统变量group_replication_flow_control_applier_threshold
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值25000
      最低值0
      最大值2147483647

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

    • group_replication_flow_control_certifier_threshold

      属性
      命令行格式--group-replication-flow-control-certifier-threshold=#
      系统变量group_replication_flow_control_certifier_threshold
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值25000
      最低值0
      最大值2147483647

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

    • group_replication_flow_control_hold_percent

      属性
      命令行格式--group-replication-flow-control-hold-percent=#
      系统变量group_replication_flow_control_hold_percent
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值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
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值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
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值0
      最低值0
      最大值100

      定义成员在计算配额时应假定可用于自己的配额百分比。值为0表示配额应在上一个期间作为作家的成员之间平均分配。

    • group_replication_flow_control_min_quota

      属性
      命令行格式--group-replication-flow-control-min-quota=#
      系统变量group_replication_flow_control_min_quota
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值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
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值0
      最低值0
      最大值2147483647

      控制由于组中另一个正在恢复的成员而可以分配给成员的最低配额,而与在上一个期间执行的计算的最小配额无关。值为0表示没有最小配额。不能大于group_replication_flow_control_max_commit_quota

    • group_replication_flow_control_mode

      属性
      命令行格式--group-replication-flow-control-mode=value
      系统变量group_replication_flow_control_mode
      范围Global
      动态
      SET_VAR提示适用没有
      类型列举
      默认值QUOTA
      有效值

      DISABLED

      QUOTA

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

    • group_replication_flow_control_period

      属性
      命令行格式--group-replication-flow-control-period=#
      系统变量group_replication_flow_control_period
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值1
      最低值1
      最大值60

      定义流控制迭代之间要等待的秒数,在该秒中发送流控制消息并运行流控制管理任务。

    • group_replication_flow_control_release_percent

      属性
      命令行格式--group-replication-flow-control-release-percent=#
      系统变量group_replication_flow_control_release_percent
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值50
      最低值0
      最大值1000

      定义当流量控制不再需要限制写程序成员时如何释放组配额,该百分比是每个流量控制周期的配额增加。值0表示一旦流量控制阈值在限制之内,配额将在一次流量控制迭代中释放。该范围允许以当前配额的10倍释放配额,因为这允许更大程度的适应,主要是在流量控制周期很大且配额非常小时。

    • group_replication_force_members

      属性
      命令行格式--group-replication-force-members=value
      系统变量group_replication_force_members
      范围Global
      动态
      SET_VAR提示适用没有
      类型string

      端的地址为逗号的列表分隔的列表,例如host1:port1host2:port2。此选项用于强制新的组成员身份,其中排除的成员不会收到新的视图并被阻止。

      您必须指定group_replication_local_address每个成员在选项中指定的地址或主机名和端口。必须在方括号中指定IPv6地址。例如:

      "198.51.100.44:33061,[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061,example.org:33061"
      

      用于组复制(XCom)的组通信引擎将检查提供的IP地址格式是否有效,并检查您是否没有包括当前无法访问的任何组成员。否则,新配置将无法通过验证,因此您必须小心仅包含属于该组可访问成员的联机服务器。列表中任何不正确的值或无效的主机名都可能导致该组被无效的配置阻止。

      在强制执行新的成员资格配置之前,必须确保要排除的服务器已关闭,这一点很重要。如果不是,请在继续操作之前将其关闭。仍在线的组成员可以自动形成新的配置,如果已经进行过,则强制进行新的配置可能会为该组造成人为的裂脑情况。

      使用group_replication_force_members系统变量成功强制新的组成员身份并取消阻止该组后,请确保清除系统变量。group_replication_force_members必须为空才能发出START GROUP_REPLICATION声明。

      有关遵循的步骤的详细信息,请参见“网络分区”。

    • group_replication_group_name

      属性
      命令行格式--group-replication-group-name=value
      系统变量group_replication_group_name
      范围Global
      动态
      SET_VAR提示适用没有
      类型string

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

      重要

      必须使用唯一的UUID。

    • group_replication_group_seeds

      属性
      命令行格式--group-replication-group-seeds=value
      系统变量group_replication_group_seeds
      范围Global
      动态
      SET_VAR提示适用没有
      类型string

      组成员的列表,该列表为加入该组的成员提供与加入成员获得与该组同步所需的数据。该列表由每个包含的种子成员的单个内部网络地址或主机名组成,如种子成员的group_replication_local_address系统变量(不是种子成员的SQL主机名和端口)中所配置。种子成员的地址作为逗号分隔的列表,如被指定host1:port1host2:port2。必须在方括号中指定IPv6地址。例如:

      group_replication_group_seeds= "198.51.100.44:33061,[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061, example.org:33061"
      

      请注意,在START GROUP_REPLICATION发出语句并且组通信系统(GCS)可用之前,不会验证为此变量指定的值。

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

      服务器加入复制组时,它将尝试连接到其group_replication_group_seeds系统变量中列出的第一个种子成员。如果拒绝连接,则加入成员尝试按顺序连接到列表中的每个其他种子成员。如果加入成员连接到种子成员,但因此没有被添加到复制组中(例如,由于种子成员在其白名单中没有加入成员的地址并关闭了连接),则加入成员将继续执行以下操作:按顺序尝试列表中其余的种子成员。

      加入成员必须使用种子成员在group_replication_group_seeds选项中发布的相同协议(IPv4或IPv6)与种子成员进行通信。为了将IP复制白名单用于组复制,种子成员上的白名单必须包括种子成员提供的协议的加入成员的IP地址,或解析为该协议地址的主机名。除加入会员的地址或主机名外,还必须设置此地址或主机名并将其列入白名单group_replication_local_address如果该地址的协议与种子成员的公告协议不匹配。如果加入成员没有适当协议的白名单地址,则拒绝其连接尝试。有关更多信息,请参见“组复制IP地址白名单”。

    • group_replication_gtid_assignment_block_size

      属性
      命令行格式--group-replication-gtid-assignment-block-size=#
      系统变量group_replication_gtid_assignment_block_size
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值1000000
      最低值1
      最大值(64位平台)9223372036854775807
      最大值(32位平台)4294967295

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

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

    • group_replication_ip_whitelist

      属性
      命令行格式--group-replication-ip-whitelist=value
      系统变量group_replication_ip_whitelist
      范围Global
      动态
      SET_VAR提示适用没有
      类型string
      默认值AUTOMATIC

      指定允许哪些主机连接到组。您为每个组成员指定的地址group_replication_local_address必须在复制组中的其他服务器上列入白名单。请注意,在START GROUP_REPLICATION发出语句并且组通信系统(GCS)可用之前,不会验证为此变量指定的值。

      默认情况下,此系统变量设置为AUTOMATIC,它允许来自主机上活动的专用子网的连接。用于组复制(XCom)的组通信引擎会自动扫描主机上的活动接口,并使用私有子网中的地址来标识这些接口。这些地址以及localhostIPv4和(来自MySQL 8.0.14)IPv6 的 IP地址用于创建“组复制”白名单。有关自动将地址列入白名单的范围的列表,请参见“组复制IP地址白名单”。

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

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

      • IPv4地址(例如,198.51.100.44
      • 具有CIDR表示法的IPv4地址(例如,192.0.2.21/24
      • 来自MySQL 8.0.14的IPv6地址(例如,2001:db8:85a3:8d3:1319:8a2e:370:7348
      • 来自MySQL 8.0.14的具有CIDR表示法的IPv6地址(例如,2001:db8:85a3:8d3::/64
      • 主机名(例如example.org
      • 具有CIDR表示法的主机名(例如,www.example.com/24

      在MySQL 8.0.14之前,主机名只能解析为IPv4地址。从MySQL 8.0.14开始,主机名可以解析为IPv4地址和/或IPv6地址。如果主机名同时解析为IPv4和IPv6地址,则IPv4地址始终用于组复制连接。您可以将CIDR表示法与主机名或IP地址结合使用,以将具有特定网络前缀的IP地址块列入白名单,但请确保指定子网中的所有IP地址都在您的控制之下。

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

      "192.0.2.21/24,198.51.100.44,203.0.113.0/24,2001:db8:85a3:8d3:1319:8a2e:370:7348,example.org,www.example.com/24"
      

      如果group_replication_group_seeds加入成员具有IPv4时group_replication_local_address,如果选项中列出了该组的任何种子成员,并且带有IPv6地址,或者相反,您还必须为加入成员设置备用地址并将其列入白名单,以供该成员提供的协议使用。种子成员(或解析为该协议地址的主机名)。有关更多信息,请参见“组复制IP地址白名单”。

      例如,可以根据您的安全要求在不同的组成员上配置不同的白名单,以使不同的子网分开。但是,当重新配置组时,这可能会导致问题。如果您没有特定的安全要求,请在组的所有成员上使用相同的白名单。有关更多详细信息,请参见“组复制IP地址白名单”。

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

      警告

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

    • group_replication_local_address

      属性
      命令行格式--group-replication-local-address=value
      系统变量group_replication_local_address
      范围Global
      动态
      SET_VAR提示适用没有
      类型string

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

      警告

      请勿使用此地址与会员通信。这不是MySQL服务器SQL协议的主机和端口。

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

      group_replication_local_address所有组成员都必须解析由配置的网络地址。例如,如果每个服务器实例位于具有固定网络地址的不同计算机上,则可以使用计算机的IP地址,例如10.0.0.1。如果使用主机名,则必须使用标准名称,并确保可以通过DNS,正确配置的/etc/hosts文件或其他名称解析过程来解析它。从MySQL 8.0.14起,可以使用IPv6地址(或解析为它们的主机名)以及IPv4地址。必须在方括号中指定IPv6地址,以区分端口号,例如:

      group_replication_local_address= "[2001:db8:85a3:8d3:1319:8a2e:370:7348]:33061"
      

      如果指定为服务器实例的组复制本地地址的主机名同时解析为IPv4和IPv6地址,则IPv4地址始终用于组复制连接。有关对IPv6网络的组复制支持以及具有混合使用IPv4成员和使用IPv6的成员的复制组的更多信息,请参见“支持IPv6以及IPv6和IPv4混合组”。

      为了将IP地址列入组复制白名单,group_replication_local_address必须将您为每个组成员指定的地址添加到group_replication_ip_whitelist复制组中其他服务器上该选项的列表中。如果组的任何种子成员group_replication_group_seeds在该成员具有IPv4时在选项中列出了IPv6地址group_replication_local_address(或相反),则还必须为此成员设置一个备用地址并将其列入白名单,以用于所需的协议(或主机)解析为该协议地址的名称)。有关更多信息,请参见“组复制IP地址白名单”。

    • group_replication_member_weight

      属性
      命令行格式--group-replication-member-weight=#
      系统变量group_replication_member_weight
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值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-4,和member-1。这导致在member发生故障转移时将-2选择为新的主要数据库。有关更多信息,请参见“单主模式”。

    • group_replication_member_expel_timeout

      属性
      命令行格式--group-replication-member-expel-timeout=#
      介绍了8.0.13
      系统变量group_replication_member_expel_timeout
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值0
      最低值0
      最大值(≥8.0.14)3600
      最大值(≤8.0.13)31536000

      组复制组成员在怀疑之后,从组中排除怀疑失败的成员之前等待的时间(以秒为单位)。在创建怀疑之前的最初5秒检测时间不计入该时间。更改group_replication_member_expel_timeout组成员的值会立即对该组成员的现有和将来的怀疑生效。并非所有组成员都具有相同的设置是强制性的,但建议这样做是为了避免意外驱逐。

      默认情况下,group_replication_member_expel_timeout将其设置为0,这意味着没有等待时间,并且在5秒钟的检测时间结束后,可疑成员应立即被驱逐出境。为避免在速度较慢的网络上不必要的驱逐,或在预期的瞬态网络故障或计算机速度减慢的情况下,可以将超时值指定为大于零,最长不超过3600秒(1小时)。如果可疑成员在怀疑超时之前再次变为活动状态,它将重新加入该组,应用其余组成员缓冲的所有消息,然后进入ONLINE状态。

      如果超过了超时时间,可疑成员将在怀疑超时后立即被驱逐出境。如果该成员能够恢复通信并收到将其驱逐的视图,并且该成员已将group_replication_autorejoin_tries系统变量设置为指定自动重新加入尝试的次数,则该成员将继续进行指定次数的重新加入组的尝试。超级只读模式。如果成员没有指定任何自动重新加入尝试,或者成员用尽了指定的尝试次数,则该成员将遵循系统变量指定的操作group_replication_exit_state_action

      有关使用此选项的更多信息,请参见“加速超时”。有关避免该系统变量不可用时不必要的驱逐的替代缓解策略,请参见“组复制限制”。

    • group_replication_message_cache_size

      属性
      命令行格式--group-replication-message-cache-size=#
      介绍了8.0.16
      系统变量group_replication_message_cache_size
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值1073741824(1 GB)
      最低值1073741824(1 GB)
      最大值(64位平台)18446744073709551615(16 EiB)
      最大值(32位平台)315360004294967295(4 GB)

      可用于组复制(XCom)的组通信引擎中的消息缓存的最大内存量,该内存保留作为共识协议一部分在组成员之间交换的消息(及其元数据)。在其他功能中,消息高速缓存用于成员在无法与其他组成员通信之后返回该组的成员进行恢复。的group_replication_member_expel_timeout系统变量确定成员可以返回小组而不是被驱逐的时间(最多一个小时)。消息缓存的大小应参考该时间段内的预期消息量来设置,以便它包含成员成功返回所需的所有丢失消息。

      group_replication_message_cache_size默认和最小设置为1073741824字节(1 GB)。应该对所有组成员设置相同的缓存大小限制,因为尝试重新连接的无法访问的成员会随机选择任何其他成员以恢复丢失的消息。考虑到MySQL Server其他缓存和对象池的大小,请确保系统上有足够的内存用于所选的缓存大小限制。

      缓存大小限制可以在运行时动态增加或减少。如果减小缓存大小限制,则XCom会删除已确定并交付的最旧的条目,直到当前大小低于该限制为止。当从消息缓存中删除当前无法访问的成员可能需要恢复的消息时,组复制的组通信系统(GCS)会通过警告消息向您发出警报。有关调整消息缓存大小的更多信息,请参见“ XCom缓存管理”。

    • group_replication_poll_spin_loops

      属性
      命令行格式--group-replication-poll-spin-loops=#
      系统变量group_replication_poll_spin_loops
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值0
      最低值0
      最大值(64位平台)18446744073709551615
      最大值(32位平台)4294967295

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

    • group_replication_recovery_complete_at

      属性
      命令行格式--group-replication-recovery-complete-at=value
      系统变量group_replication_recovery_complete_at
      范围Global
      动态
      SET_VAR提示适用没有
      类型列举
      默认值TRANSACTIONS_APPLIED
      有效值

      TRANSACTIONS_CERTIFIED

      TRANSACTIONS_APPLIED

      在状态转移后处理缓存的事务时,在分布式恢复过程中应用的策略。此选项指定在成员收到加入组之前错过的所有交易TRANSACTIONS_CERTIFIED之后(),还是在收到并应用它们之后将其标记为在线TRANSACTIONS_APPLIED

    • group_replication_recovery_compression_algorithm

      属性
      命令行格式--group-replication-recovery-compression-algorithm=value
      介绍了8.0.18
      系统变量group_replication_recovery_compression_algorithm
      范围Global
      动态
      SET_VAR提示适用没有
      类型
      默认值uncompressed
      有效值

      zlib

      zstd

      uncompressed

      组复制允许分布式恢复连接使用的压缩算法,以便从施主的二进制日志进行状态转移。可用算法与protocol_compression_algorithms系统变量相同。

      如果已将服务器设置为支持克隆(请参见“克隆分布式恢复”),并且在分布式恢复期间使用了远程克隆操作,则此设置不适用。对于这种状态转移方法,将使用克隆插件的clone_enable_compression设置。

    • group_replication_recovery_get_public_key

      属性
      命令行格式--group-replication-recovery-get-public-key[={OFF|ON}]
      系统变量group_replication_recovery_get_public_key
      范围Global
      动态
      SET_VAR提示适用没有
      类型布尔型
      默认值OFF

      是否向主服务器请求基于RSA密钥对的密码交换所需的公钥。如果group_replication_recovery_public_key_path将设置为有效的公共密钥文件,则优先于group_replication_recovery_get_public_key。如果您不使用SSL通过group_replication_recovery通道(group_replication_recovery_use_ssl=ON)进行分布式恢复,并且组复制的复制用户帐户使用caching_sha2_password插件进行身份验证(这是MySQL 8.0中的默认设置),则此变量适用。有关更多详细信息,请参阅“使用组复制”和“缓存SHA-2用户凭证插件”。

    • group_replication_recovery_public_key_path

      属性
      命令行格式--group-replication-recovery-public-key-path=file_name
      系统变量group_replication_recovery_public_key_path
      范围Global
      动态
      SET_VAR提示适用没有
      类型文件名
      默认值NULL

      文件的路径名,该文件包含主服务器基于RSA密钥对的密码交换所需的主密钥的从属端副本。该文件必须为PEM格式。如果group_replication_recovery_public_key_path将设置为有效的公共密钥文件,则优先于group_replication_recovery_get_public_key。如果您不使用SSL进行group_replication_recovery通道上的分布式恢复(因此group_replication_recovery_use_ssl设置为OFF),并且组复制的复制用户帐户使用caching_sha2_password插件(MySQL 8.0中的默认设置)或sha256_password插件进行身份验证,则此变量适用。(对于sha256_password,设置group_replication_recovery_public_key_path仅在使用OpenSSL构建MySQL时适用。)有关更多详细信息,请参见使用组复制和缓存SHA-2用户凭证插件。

    • group_replication_recovery_reconnect_interval

      属性
      命令行格式--group-replication-recovery-reconnect-interval=#
      系统变量group_replication_recovery_reconnect_interval
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值60
      最低值0
      最大值31536000

      当在组中找不到合适的供体进行分布式恢复时,重新连接尝试之间的睡眠时间(以秒为单位)。

    • group_replication_recovery_retry_count

      属性
      命令行格式--group-replication-recovery-retry-count=#
      系统变量group_replication_recovery_retry_count
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值10
      最低值0
      最大值31536000

      加入的成员在放弃之前尝试连接到可用捐助者以进行分布式恢复的次数。

    • group_replication_recovery_ssl_ca

      属性
      命令行格式--group-replication-recovery-ssl-ca=value
      系统变量group_replication_recovery_ssl_ca
      范围Global
      动态
      SET_VAR提示适用没有
      类型string

      包含用于分布式恢复连接的受信任SSL证书颁发机构列表的文件的路径。有关配置用于恢复的SSL的信息,请参见“组复制安全套接字层(SSL)支持”。

      如果已将此服务器设置为支持克隆(请参见“为分布式恢复而克隆”),并且已将其设置group_replication_recovery_use_sslON,则组复制会自动将克隆SSL选项的设置配置clone_ssl_ca为与您的设置相匹配group_replication_recovery_ssl_ca

    • group_replication_recovery_ssl_capath

      属性
      命令行格式--group-replication-recovery-ssl-capath=value
      系统变量group_replication_recovery_ssl_capath
      范围Global
      动态
      SET_VAR提示适用没有
      类型string

      包含用于分布式恢复连接的受信任SSL证书颁发机构证书的目录的路径。有关为分布式恢复配置SSL的信息,请参见“组复制安全套接字层(SSL)支持”。

    • group_replication_recovery_ssl_cert

      属性
      命令行格式--group-replication-recovery-ssl-cert=value
      系统变量group_replication_recovery_ssl_cert
      范围Global
      动态
      SET_VAR提示适用没有
      类型string

      用于为分布式恢复建立安全连接的SSL证书文件的名称。有关为分布式恢复配置SSL的信息,请参见“组复制安全套接字层(SSL)支持”。

      如果已将此服务器设置为支持克隆(请参见“为分布式恢复而克隆”),并且已将其设置group_replication_recovery_use_sslON,则组复制会自动将克隆SSL选项的设置配置clone_ssl_cert为与您的设置相匹配group_replication_recovery_ssl_cert

    • group_replication_recovery_ssl_cipher

      属性
      命令行格式--group-replication-recovery-ssl-cipher=value
      系统变量group_replication_recovery_ssl_cipher
      范围Global
      动态
      SET_VAR提示适用没有
      类型string

      SSL加密的允许密码列表。有关为分布式恢复配置SSL的信息,请参见“组复制安全套接字层(SSL)支持”。

    • group_replication_recovery_ssl_crl

      属性
      命令行格式--group-replication-recovery-ssl-crl=value
      系统变量group_replication_recovery_ssl_crl
      范围Global
      动态
      SET_VAR提示适用没有
      类型文件名

      目录路径,该目录包含包含证书吊销列表的文件。有关为分布式恢复配置SSL的信息,请参见“组复制安全套接字层(SSL)支持”。

    • group_replication_recovery_ssl_crlpath

      属性
      命令行格式--group-replication-recovery-ssl-crlpath=value
      系统变量group_replication_recovery_ssl_crlpath
      范围Global
      动态
      SET_VAR提示适用没有
      类型目录名

      目录路径,该目录包含包含证书吊销列表的文件。有关为分布式恢复配置SSL的信息,请参见“组复制安全套接字层(SSL)支持”。

    • group_replication_recovery_ssl_key

      属性
      命令行格式--group-replication-recovery-ssl-key=value
      系统变量group_replication_recovery_ssl_key
      范围Global
      动态
      SET_VAR提示适用没有
      类型string

      用于建立安全连接的SSL密钥文件的名称。有关为分布式恢复配置SSL的信息,请参见“组复制安全套接字层(SSL)支持”。

      如果已将此服务器设置为支持克隆(请参见“为分布式恢复而克隆”),并且已将其设置group_replication_recovery_use_sslON,则组复制会自动将克隆SSL选项的设置配置clone_ssl_key为与您的设置相匹配group_replication_recovery_ssl_key

    • group_replication_recovery_ssl_verify_server_cert

      属性
      命令行格式--group-replication-recovery-ssl-verify-server-cert[={OFF|ON}]
      系统变量group_replication_recovery_ssl_verify_server_cert
      范围Global
      动态
      SET_VAR提示适用没有
      类型布尔型
      默认值OFF

      进行分布式恢复连接,检查施主发送的证书中服务器的“公用名”值。有关为分布式恢复配置SSL的信息,请参见“组复制安全套接字层(SSL)支持”。

    • group_replication_recovery_tls_ciphersuites

      属性
      命令行格式--group-replication-recovery-tls-ciphersuites=value
      介绍了8.0.19
      系统变量group_replication_recovery_tls_ciphersuites
      范围Global
      动态
      SET_VAR提示适用没有
      类型string
      默认值NULL

      当将TLSv1.3用于分布式恢复连接的连接加密时,一个或多个允许的密码套件的冒号分隔列表,并且此服务器实例是分布式恢复连接中的客户端,即加入成员。如果将此系统变量设置为NULL使用TLSv1.3时(如果未设置系统变量,则为默认值),则默认情况下允许使用密码套件,如“加密连接TLS”中所列协议和密码”。如果将此系统变量设置为空字符串,则不允许使用密码套件,因此将不使用TLSv1.3。该系统变量可从MySQL 8.0.19获得。看到有关配置SSL进行分布式恢复的信息,请参见“组复制安全套接字层(SSL)支持”。

    • group_replication_recovery_tls_version

      属性
      命令行格式--group-replication-recovery-tls-version=value
      介绍了8.0.19
      系统变量group_replication_recovery_tls_version
      范围Global
      动态
      SET_VAR提示适用没有
      类型string
      默认值TLSv1,TLSv1.1,TLSv1.2,TLSv1.3

      当此服务器实例是分布式恢复连接中的客户端(即加入成员)时,用于连接加密的一个或多个允许的TLS协议的逗号分隔列表。确保指定的版本是连续的(例如,“TLSv1,TLSv1.1,TLSv1.2”)。如果未设置此系统变量,则使用默认的“TLSv1,TLSv1.1,TLSv1.2,TLSv1.3”。每个分布式恢复连接中涉及的组成员(作为客户端(加入成员)和服务器(捐助者))协商它们都设置为支持的最高协议版本。该系统变量可从MySQL 8.0.19获得。请参见“组复制安全套接字层(SSL)支持”有关配置SSL以进行分布式恢复的信息。

    • group_replication_recovery_use_ssl

      属性
      命令行格式--group-replication-recovery-use-ssl[={OFF|ON}]
      系统变量group_replication_recovery_use_ssl
      范围Global
      动态
      SET_VAR提示适用没有
      类型布尔型
      默认值OFF

      组成员之间的组复制分布式恢复连接是否应使用SSL。有关为分布式恢复配置SSL的信息,请参见“组复制安全套接字层(SSL)支持”。

      如果此服务器已设置为支持克隆(请参见“克隆分布式恢复”),并且将此选项设置为ON,则组复制将SSL用于远程克隆操作以及从授权者的二进制文件进行状态转移日志。如果将此选项设置为OFF,则组复制不会将SSL用于远程克隆操作。

    • group_replication_recovery_zstd_compression_level

      属性
      命令行格式--group-replication-recovery-zstd-compression-level=#
      介绍了8.0.18
      系统变量group_replication_recovery_zstd_compression_level
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值3
      最低值1
      最大值22

      用于使用zstd压缩算法的组复制分布式恢复连接的压缩级别。允许的级别为1到22,更大的值表示压缩级别增加。默认zstd压缩级别为3。对于不使用zstd压缩的分布式恢复连接,此变量无效。

    • group_replication_single_primary_mode

      属性
      命令行格式--group-replication-single-primary-mode[={OFF|ON}]
      系统变量group_replication_single_primary_mode
      范围Global
      动态
      SET_VAR提示适用没有
      类型布尔型
      默认值ON

      指示组自动选择一个服务器作为处理读/写工作负载的服务器。该服务器为主要服务器,所有其他服务器均为SECONDARIES。

      此系统变量是组范围的配置设置。它在所有组成员上必须具有相同的值,并且在组复制运行时不能更改,并且需要完全重新引导组(服务器使用进行引导group_replication_bootstrap_group=ON)才能使值更改生效。从MySQL 8.0.16开始,您可以在组仍在运行时使用group_replication_switch_to_single_primary_mode()group_replication_switch_to_multi_primary_mode()UDF更改此系统变量的值。有关更多信息,请参见“配置在线组”。

    • group_replication_ssl_mode

      属性
      命令行格式--group-replication-ssl-mode=value
      系统变量group_replication_ssl_mode
      范围Global
      动态
      SET_VAR提示适用没有
      类型列举
      默认值DISABLED
      有效值

      DISABLED

      REQUIRED

      VERIFY_CA

      VERIFY_IDENTITY

      设置组复制成员之间的组通信连接的安全状态。可能的值如下:

      已停用

      建立未加密的连接(默认)。

      需要

      如果服务器支持安全连接,则建立安全连接。

      VERIFY_CA

      与相似REQUIRED,但还要对照已配置的证书颁发机构(CA)证书验证服务器TLS证书。

      VERIFY_IDENTITY

      与相似VERIFY_CA,但另外请验证服务器证书是否与尝试连接的主机匹配。

      有关为组通信配置SSL的信息,请参见“组复制安全套接字层(SSL)支持”。

    • group_replication_start_on_boot

      属性
      命令行格式--group-replication-start-on-boot[={OFF|ON}]
      系统变量group_replication_start_on_boot
      范围Global
      动态
      SET_VAR提示适用没有
      类型布尔型
      默认值ON

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

    • group_replication_transaction_size_limit

      属性
      命令行格式--group-replication-transaction-size-limit=#
      系统变量group_replication_transaction_size_limit
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值150000000
      最低值0
      最大值2147483647

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

      当此系统变量设置为0时,该组接受的事务大小没有限制。从MySQL 8.0开始,此系统变量的默认设置为150000000字节(约143 MB)。请记住,处理事务所花费的时间与其大小成正比,请根据需要该组允许的最大消息大小来调整此系统变量的值。group_replication_transaction_size_limit所有组成员的值都应该相同。有关大型事务的进一步缓解策略,请参见“组复制限制”。

    • group_replication_unreachable_majority_timeout

      属性
      命令行格式--group-replication-unreachable-majority-timeout=#
      系统变量group_replication_unreachable_majority_timeout
      范围Global
      动态
      SET_VAR提示适用没有
      类型整数
      默认值0
      最低值0
      最大值31536000

      指定遭受网络分区并且无法连接到多数成员的成员在离开组之前等待的秒数。在由5个服务器组成的组(S1,S2,S3,S4,S5)中,如果(S1,S2)与(S3,S4,S5)之间存在断开连接,则存在网络分区。第一组(S1,S2)现在占少数,因为它不能联系超过一半的组。当多数组(S3,S4,S5)保持运行时,少数组等待指定的时间进行网络重新连接。有关此方案的详细说明,请参见“网络分区”。

      默认情况下,group_replication_unreachable_majority_timeout设置为0,这意味着由于网络分区而处于少数状态的成员将永远等待离开该组。如果设置超时,则在经过指定的时间后,将还原少数服务器处理的所有未决事务,并且少数服务器分区中的服务器将移至该ERROR状态。如果成员拥有group_replication_autorejoin_tries系统变量设置为指定自动重新尝试的次数,在超级只读模式下,它将继续进行指定次数的尝试重新加入组。如果成员没有指定任何自动重新加入尝试,或者成员用尽了指定的尝试次数,则该成员将遵循系统变量指定的操作group_replication_exit_state_action

      警告

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

      有关使用此选项的更多信息,请参见“对故障检测和网络分区的响应”。

    组复制状态变量

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

    • group_replication_primary_member

      当组以单主要模式运行时,显示主要成员的UUID。如果组以多主要模式运行,则显示一个空字符串。

      警告

      group_replication_primary_member状态变量已被弃用,并计划在未来的版本中被删除。

      请参见“多主模式和单主模式”。