MySQL8 中文参考(八十二)(7)https://developer.aliyun.com/article/1565907
- 此系统变量的值可以在 Group Replication 运行时更改,但更改只有在您停止并重新启动组成员上的 Group Replication 后才会生效。
group_replication_recovery_ssl_capath
指定包含用于分布式恢复连接的受信任 SSL 证书颁发机构证书的目录路径。有关为分布式恢复配置 SSL 的信息,请参见 第 20.6.2 节,“使用安全套接字层 (SSL) 保护组通信连接” 保护组通信连接")。
当 MySQL 通信堆栈用于组时(group_replication_communication_stack = MYSQL
),此设置用于组通信连接的 TLS/SSL 配置,以及分布式恢复连接。 group_replication_recovery_ssl_cert
命令行格式 | --group-replication-recovery-ssl-cert=value |
系统变量 | group_replication_recovery_ssl_cert |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 字符串 |
- 此系统变量的值可以在 Group Replication 运行时更改,但更改只有在您停止并重新启动组成员上的 Group Replication 后才会生效。
group_replication_recovery_ssl_cert
指定用于建立分布式恢复安全连接的 SSL 证书文件的名称。有关为分布式恢复配置 SSL 的信息,请参见 第 20.6.2 节,“使用安全套接字层 (SSL) 保护组通信连接” 保护组通信连接")。
如果此服务器已设置支持克隆(参见第 20.5.4.2 节,“用于分布式恢复的克隆”),并且您已将group_replication_recovery_use_ssl
设置为ON
,Group Replication 会自动配置克隆 SSL 选项clone_ssl_cert
的设置,以匹配您对group_replication_recovery_ssl_cert
的设置。
当 MySQL 通信堆栈用于组(group_replication_communication_stack = MYSQL
)时,此设置用于组通信连接的 TLS/SSL 配置,以及分布式恢复连接。 group_replication_recovery_ssl_cipher
命令行格式 | --group-replication-recovery-ssl-cipher=value |
系统变量 | group_replication_recovery_ssl_cipher |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 字符串 |
- 此系统变量的值可以在 Group Replication 运行时更改,但更改只有在您停止并重新启动组复制组件后才会生效。
group_replication_recovery_ssl_cipher
指定 SSL 加密的允许密码列表。有关配置分布式恢复的 SSL 信息,请参阅第 20.6.2 节,“使用安全套接字层(SSL)保护组通信连接”。
当 MySQL 通信堆栈用于组(group_replication_communication_stack = MYSQL
)时,此设置用于组通信连接的 TLS/SSL 配置,以及分布式恢复连接。 group_replication_recovery_ssl_crl
命令行格式 | --group-replication-recovery-ssl-crl=value |
系统变量 | group_replication_recovery_ssl_crl |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 文件名 |
- 此系统变量的值可以在 Group Replication 运行时更改,但更改只有在您停止并重新启动组成员上的 Group Replication 后才会生效。
group_replication_recovery_ssl_crl
指定包含证书吊销列表文件的目录路径。参见第 20.6.2 节,“使用安全套接字层 (SSL) 保护组通信连接” 保护组通信连接"),了解有关为分布式恢复配置 SSL 的信息。
当 MySQL 通信堆栈用于组时(group_replication_communication_stack = MYSQL
),此设置用于组通信连接的 TLS/SSL 配置,以及分布式恢复连接。 group_replication_recovery_ssl_crlpath
命令行格式 | --group-replication-recovery-ssl-crlpath=value |
系统变量 | group_replication_recovery_ssl_crlpath |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 目录名称 |
- 此系统变量的值可以在 Group Replication 运行时更改,但更改只有在您停止并重新启动组成员上的 Group Replication 后才会生效。
group_replication_recovery_ssl_crlpath
指定包含证书吊销列表文件的目录路径。参见第 20.6.2 节,“使用安全套接字层 (SSL) 保护组通信连接” 保护组通信连接"),了解有关为分布式恢复配置 SSL 的信息。
当 MySQL 通信堆栈用于组时(group_replication_communication_stack = MYSQL
),此设置用于组通信连接的 TLS/SSL 配置,以及分布式恢复连接。 group_replication_recovery_ssl_key
命令行格式 | --group-replication-recovery-ssl-key=value |
系统变量 | group_replication_recovery_ssl_key |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 字符串 |
- 此系统变量的值可以在 Group Replication 运行时更改,但更改只有在您停止并重新启动组成员上的 Group Replication 后才会生效。
group_replication_recovery_ssl_key
指定用于建立安全连接的 SSL 密钥文件的名称。有关配置分布式恢复的 SSL 信息,请参阅 第 20.6.2 节,“使用安全套接字层 (SSL) 保护组通信连接”")。
如果此服务器已设置为支持克隆(请参阅 第 20.5.4.2 节,“用于分布式恢复的克隆”),并且您已将group_replication_recovery_use_ssl
设置为ON
,Group Replication 会自动配置克隆 SSL 选项clone_ssl_key
的设置,以匹配您对group_replication_recovery_ssl_key
的设置。
当 MySQL 通信堆栈用于组时(group_replication_communication_stack = MYSQL
),此设置用于组通信连接的 TLS/SSL 配置,以及分布式恢复连接。 group_replication_recovery_ssl_verify_server_cert
命令行格式 | --group-replication-recovery-ssl-verify-server-cert[={OFF|ON}] |
系统变量 | group_replication_recovery_ssl_verify_server_cert |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 布尔值 |
默认值 | OFF |
- 此系统变量的值可以在 Group Replication 运行时更改,但更改只有在您停止并重新启动组成员上的 Group Replication 后才会生效。
group_replication_recovery_ssl_verify_server_cert
指定分布式恢复连接是否应检查捐赠者发送的证书中服务器的通用名称值。有关配置分布式恢复的 SSL 信息,请参阅 第 20.6.2 节,“使用安全套接字层 (SSL) 保护组通信连接”")。
当 MySQL 通信堆栈用于组时(group_replication_communication_stack = MYSQL
),此设置用于组通信连接的 TLS/SSL 配置,以及分布式恢复连接。 group_replication_recovery_tls_ciphersuites
命令行格式 | --group-replication-recovery-tls-ciphersuites=value |
引入版本 | 8.0.19 |
系统变量 | group_replication_recovery_tls_ciphersuites |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 字符串 |
默认值 | NULL |
- 此系统变量的值可以在 Group Replication 运行时更改,但更改仅在您停止并重新启动组成员上的 Group Replication 后生效。
group_replication_recovery_tls_ciphersuites
指定在使用 TLSv1.3 进行连接加密时,分布式恢复连接的允许密码套件的一个或多个以冒号分隔的列表,而且此服务器实例是分布式恢复连接中的客户端,即加入成员。如果在使用 TLSv1.3 时将此系统变量设置为NULL
(如果未设置系统变量,则为默认值),则允许默认启用的密码套件,如 第 8.3.2 节,“加密连接 TLS 协议和密码” 中所列。如果将此系统变量设置为空字符串,则不允许任何密码套件,因此不使用 TLSv1.3。此系统变量从 MySQL 8.0.19 版本开始提供。有关配置分布式恢复的 SSL 信息,请参阅 第 20.6.2 节,“使用安全套接字层 (SSL) 保护组通信连接”")。
当 MySQL 通信堆栈用于组(group_replication_communication_stack = MYSQL
)时,此设置用于组通信连接的 TLS/SSL 配置,以及分布式恢复连接。 group_replication_recovery_tls_version
命令行格式 | --group-replication-recovery-tls-version=value |
引入版本 | 8.0.19 |
系统变量 | group_replication_recovery_tls_version |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 字符串 |
默认值(≥ 8.0.28) | TLSv1.2,TLSv1.3 |
默认值(≥ 8.0.19,≤ 8.0.27) | TLSv1,TLSv1.1,TLSv1.2,TLSv1.3 |
- 此系统变量的值可以在 Group Replication 运行时更改,但更改只在您停止并重新启动组成员上的 Group Replication 后生效。
group_replication_recovery_tls_version
指定了一个逗号分隔的允许的一个或多个 TLS 协议列表,用于连接加密,当此服务器实例是分布式恢复连接中的客户端(即加入成员)时。每个分布式恢复连接中涉及的组成员作为客户端(加入成员)和服务器(捐赠者)协商它们都设置支持的最高协议版本。此系统变量从 MySQL 8.0.19 开始可用。当 MySQL 通信堆栈用于组(group_replication_communication_stack = MYSQL
)时,此设置用于组通信连接的 TLS/SSL 配置,以及分布式恢复连接。如果未设置此系统变量,则默认使用“TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
”直到 MySQL 8.0.27,从 MySQL 8.0.28 开始,默认使用“TLSv1.2,TLSv1.3
”。确保指定的协议版本是连续的,中间没有跳过版本号。重要
- 从 MySQL 8.0.28 开始,MySQL Server 中移除了对 TLSv1 和 TLSv1.1 连接协议的支持。这些协议从 MySQL 8.0.26 开始被弃用,尽管 MySQL Server 客户端,包括充当客户端的 Group Replication 服务器实例,如果使用了弃用的 TLS 协议版本,不会向用户返回警告。有关更多信息,请参阅移除对 TLSv1 和 TLSv1.1 协议的支持。
- 从 MySQL 8.0.16 开始,MySQL Server 支持 TLSv1.3 协议,前提是 MySQL Server 使用 OpenSSL 1.1.1 进行编译。服务器在启动时检查 OpenSSL 的版本,如果低于 1.1.1,则将从系统变量的默认值中移除 TLSv1.3。在这种情况下,直到 MySQL 8.0.27 为止,默认值为“
TLSv1,TLSv1.1,TLSv1.2
”,从 MySQL 8.0.28 开始为“TLSv1.2
”。 - 从 MySQL 8.0.18 开始,Group Replication 支持 TLSv1.3,并从 MySQL 8.0.19 开始支持密码套件选择。有关更多信息,请参见第 20.6.2 节,“使用安全套接字层(SSL)保护组通信连接”")。
- 有关配置分布式恢复的 SSL 信息,请参见第 20.6.2 节,“使用安全套接字层(SSL)保护组通信连接”")��
group_replication_recovery_use_ssl
命令行格式 | --group-replication-recovery-use-ssl[={OFF|ON}] |
系统变量 | group_replication_recovery_use_ssl |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 布尔值 |
默认值 | OFF |
- 此系统变量的值可以在 Group Replication 运行时更改,但更改只有在您停止并重新启动组成员上的 Group Replication 后才会生效。
group_replication_recovery_use_ssl
指定 Group Replication 组成员之间的分布式恢复连接是否应该使用 SSL。有关配置分布式恢复的 SSL 信息,请参见第 20.6.2 节,“使用安全套接字层(SSL)保护组通信连接”")。
如果此服务器已设置为支持克隆(请参阅第 20.5.4.2 节,“用于分布式恢复的克隆”),并且您将此选项设置为ON
,则 Group Replication 将使用 SSL 进行远程克隆操作以及从捐赠者的二进制日志传输状态。如果将此选项设置为OFF
,则 Group Replication 不会使用 SSL 进行远程克隆操作。 group_replication_recovery_zstd_compression_level
命令行格式 | --group-replication-recovery-zstd-compression-level=# |
引入版本 | 8.0.18 |
系统变量 | group_replication_recovery_zstd_compression_level |
作用范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 整数 |
默认值 | 3 |
最小值 | 1 |
最大值 | 22 |
- 在 Group Replication 运行时可以更改此系统变量的值,但更改只有在停止并重新启动组复制时才会生效。
group_replication_recovery_zstd_compression_level
指定用于使用zstd
压缩算法的 Group Replication 分布式恢复连接的压缩级别。允许的级别从 1 到 22,较大的值表示较高级别的压缩。默认的zstd
压缩级别为 3。对于不使用zstd
压缩的分布式恢复连接,此变量不起作用。
更多信息,请参阅 第 6.2.8 节,“连接压缩控制”。 group_replication_single_primary_mode
命令行格式 | --group-replication-single-primary-mode[={OFF|ON}] |
系统变量 | group_replication_single_primary_mode |
作用范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 布尔值 |
默认值 | ON |
- 注意
此系统变量是一个组范围的配置设置,需要完全重新启动复制组才能使更改生效。group_replication_single_primary_mode
指示组自动选择一个服务器作为处理读/写工作负载的主服务器。这个服务器是主服务器,其他所有服务器都是从服务器。
此系统变量是一个组范围的配置设置。它必须在所有组成员上具有相同的值,不能在组复制运行时更改,并且需要对组进行完全重新启动(由具有group_replication_bootstrap_group=ON
的服务器引导)以使值更改生效。有关在已执行和认证事务的组中安全引导组的说明,请参见第 20.5.2 节,“重新启动组”。
如果组为此系统变量设置了一个值,并且加入的成员为该系统变量设置了不同的值,则加入的成员在值匹配之前无法加入该组。如果组成员为此系统变量设置了一个值,而加入的成员不支持该系统变量,则无法加入该组。
将此变量设置为ON
会导致group_replication_auto_increment_increment
的任何设置被忽略。
在 MySQL 8.0.16 及更高版本中,您可以使用group_replication_switch_to_single_primary_mode()
和group_replication_switch_to_multi_primary_mode()
函数在组仍在运行时更改此系统变量的值。有关更多信息,请参见第 20.5.1.2 节,“更改组模式”。 group_replication_ssl_mode
命令行格式 | --group-replication-ssl-mode=value |
系统变量 | group_replication_ssl_mode |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 枚举 |
默认值 | DISABLED |
有效值 | DISABLED``REQUIRED``VERIFY_CA``VERIFY_IDENTITY |
- 可以在组复制运行时更改此系统变量的值,但更改只有在停止并重新启动组复制后才会生效。
group_replication_ssl_mode
设置了组复制成员之间组通信连接的安全状态。可能的值如下:
DISABLED
建立一个未加密的连接(默认值)。
REQUIRED
如果服务器支持安全连接,则建立安全连接。
VERIFY_CA
类似于REQUIRED
,但还根据配置的证书颁发机构(CA)证书验证服务器 TLS 证书。
VERIFY_IDENTITY
类似于VERIFY_CA
,但还验证服务器证书是否与尝试连接的主机匹配。
请参阅 第 20.6.2 节,“使用安全套接字层(SSL)保护组通信连接” 以获取有关为组通信配置 SSL 的信息。 group_replication_start_on_boot
命令行格式 | --group-replication-start-on-boot[={OFF|ON}] |
系统变量 | group_replication_start_on_boot |
作用范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 布尔值 |
默认值 | ON |
- 此系统变量的值可以在 Group Replication 运行���更改,但更改仅在您停止并重新启动组成员上的 Group Replication 后才会生效。
group_replication_start_on_boot
指定服务器在启动时是否应自动启动 Group Replication(ON
)或不启动(OFF
)。当您将此选项设置为ON
时,在使用远程克隆操作进行分布式恢复后,Group Replication 将自动重新启动。
要在服务器启动时自动启动 Group Replication,必须使用CHANGE MASTER TO
语句将分布式恢复的用户凭据存储在服务器上的复制元数据存储库中。如果您希望在START GROUP_REPLICATION
语句中指定用户凭据,该语句仅将用户凭据存储在内存中,请确保group_replication_start_on_boot
设置为OFF
。 group_replication_tls_source
命令行格式 | --group-replication-tls-source=value |
引入版本 | 8.0.21 |
系统变量 | group_replication_tls_source |
作用范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 枚举 |
默认值 | mysql_main |
有效值 | mysql_main``mysql_admin |
- 在 Group Replication 运行时可以更改此系统变量的值,但更改只有在您停止并重新启动组成员上的 Group Replication 后才会生效。
group_replication_tls_source
指定了 Group Replication 的 TLS 材料来源。 group_replication_transaction_size_limit
命令行格式 | --group-replication-transaction-size-limit=# |
系统变量 | group_replication_transaction_size_limit |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 整数 |
默认值 | 150000000 |
最小值 | 0 |
最大值 | 2147483647 |
单位 | 字节 |
- 此系统变量在所有组成员上应具有相同的值。在 Group Replication 运行时可以更改此系统变量的值。更改立即在组成员上生效,并且从该成员上启动的下一个事务开始应用。在此过程中,系统变量的值允许在组成员之间有所不同,但某些事务可能会被拒绝。
group_replication_transaction_size_limit
配置了复制组接受的最大事务大小(以字节为单位)。大于此大小的事务将被接收成员回滚,并且不会广播到组中。大事务可能会导致复制组在内存分配方面出现问题,这可能导致系统变慢,或者在网络带宽消耗方面出现问题,这可能导致成员被怀疑已经失败,因为它正忙于处理大事务。
当此系统变量设置为 0 时,组接受的事务大小没有限制。从 MySQL 8.0 开始,此系统变量的默认设置为 150000000 字节(约为 143 MB)。根据组需要容忍的最大消息大小调整此系统变量的值,要记住,处理事务所需的时间与其大小成正比。group_replication_transaction_size_limit
的值应在所有组成员上相同。有关大事务的进一步缓解策略,请参见 第 20.3.2 节,“Group Replication 限制”。 group_replication_unreachable_majority_timeout
命令行格式 | --group-replication-unreachable-majority-timeout=# |
系统变量 | group_replication_unreachable_majority_timeout |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 整数 |
默认值 | 0 |
最小值 | 0 |
最大值 | 31536000 |
单元 | 秒 |
- 此系统变量的值可以在 Group Replication 运行时更改,并立即生效。当发生需要该行为的问题时,会读取系统变量的当前值。
group_replication_unreachable_majority_timeout
指定了成员在遭受网络分区且无法连接到多数派时等待离开组的秒数。在一个由 5 台服务器(S1,S2,S3,S4,S5)组成的组中,如果在(S1,S2)和(S3,S4,S5)之间存在断开连接,则存在网络分区。第一组(S1,S2)现在处于少数派,因为它无法联系到超过一半的组。而多数派组(S3,S4,S5)仍在运行,少数派组等待指定的时间进行网络重新连接。有关此场景的详细描述,请参见第 20.7.8 节,“处理网络分区和丢失法定人数”。
默认情况下,group_replication_unreachable_majority_timeout
设置为 0,这意味着由于网络分区而发现自己处于少数派的成员将永远等待离开组。如果设置了超时时间,当指定时间到达时,少数派处理的所有待处理事务都将被回滚,并且少数派分区中的服务器将移至ERROR
状态。如果成员的group_replication_autorejoin_tries
系统变量设置了指定的自动重新加入尝试次数,它将在超级只读模式下进行指定次数的重新加入尝试。如果成员没有指定任何自动重新加入尝试,或者已经耗尽了指定次数的尝试次数,则会按照系统变量group_replication_exit_state_action
指定的操作进行。
警告
当你有一个对称的组,例如只有两个成员(S0,S2),如果存在网络分区且没有多数派,在配置的超时时间后,所有成员都会进入ERROR
状态。
欲了解更多关于此选项的信息,请参阅 第 20.7.7.2 节,“无法达到多数超时”。 group_replication_view_change_uuid
命令行格式 | --group-replication-view-change-uuid=value |
引入版本 | 8.0.26 |
系统变量 | group_replication_view_change_uuid |
作用域 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 字符串 |
默认值 | AUTOMATIC |
- 注意
这个系统变量是一个整个组的配置设置,需要对复制组进行完全重启才能使更改生效。group_replication_view_change_uuid
指定一个替代 UUID,用作组生成的视图更改事件中 GTID 标识符的 UUID 部分。替代 UUID 使这些内部生成的事务易于与从客户端接收的事务区分开。如果您的设置允许在组之间进行故障切换,并且您需要识别和丢弃特定于备份组的事务,则这可能很有用。此系统变量的默认值为AUTOMATIC
,意味着视图更改事件的 GTID 使用由group_replication_group_name
系统变量指定的组名,就像来自客户端的事务一样。在没有此系统变量的版本中,组成员被视为具有值AUTOMATIC
。
替代 UUID 必须与由group_replication_group_name
系统变量指定的组名不同,并且必须与任何组成员的服务器 UUID 不同。它还必须与应用于拓扑中任何复制通道上的匿名事务的 GTID 中使用的任何 UUID 不同,使用CHANGE REPLICATION SOURCE TO
语句的ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS
选项。
这个系统变量是一个群组范围的配置设置。它必须在所有群组成员上具有相同的数值,不能在 Group Replication 运行时更改,并且需要对群组进行完全重启(由具有group_replication_bootstrap_group=ON
的服务器引导)以使数值更改生效。有关在已执行和认证事务的群组中安全引导群组的说明,请参见 Section 20.5.2, “Restarting a Group”。
如果群组对这个系统变量有一个数值设置,而加入的成员对这个系统变量有一个不同的数值设置,那么加入的成员在数值匹配之前无法加入群组。如果群组成员对这个系统变量有一个数值设置,而加入的成员不支持这个系统变量,那么它无法加入群组。
t`
命令行格式 | --group-replication-transaction-size-limit=# |
系统变量 | group_replication_transaction_size_limit |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 整数 |
默认值 | 150000000 |
最小值 | 0 |
最大值 | 2147483647 |
单位 | 字节 |
- 此系统变量在所有组成员上应具有相同的值。在 Group Replication 运行时可以更改此系统变量的值。更改立即在组成员上生效,并且从该成员上启动的下一个事务开始应用。在此过程中,系统变量的值允许在组成员之间有所不同,但某些事务可能会被拒绝。
group_replication_transaction_size_limit
配置了复制组接受的最大事务大小(以字节为单位)。大于此大小的事务将被接收成员回滚,并且不会广播到组中。大事务可能会导致复制组在内存分配方面出现问题,这可能导致系统变慢,或者在网络带宽消耗方面出现问题,这可能导致成员被怀疑已经失败,因为它正忙于处理大事务。
当此系统变量设置为 0 时,组接受的事务大小没有限制。从 MySQL 8.0 开始,此系统变量的默认设置为 150000000 字节(约为 143 MB)。根据组需要容忍的最大消息大小调整此系统变量的值,要记住,处理事务所需的时间与其大小成正比。group_replication_transaction_size_limit
的值应在所有组成员上相同。有关大事务的进一步缓解策略,请参见 第 20.3.2 节,“Group Replication 限制”。 group_replication_unreachable_majority_timeout
命令行格式 | --group-replication-unreachable-majority-timeout=# |
系统变量 | group_replication_unreachable_majority_timeout |
范围 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 整数 |
默认值 | 0 |
最小值 | 0 |
最大值 | 31536000 |
单元 | 秒 |
- 此系统变量的值可以在 Group Replication 运行时更改,并立即生效。当发生需要该行为的问题时,会读取系统变量的当前值。
group_replication_unreachable_majority_timeout
指定了成员在遭受网络分区且无法连接到多数派时等待离开组的秒数。在一个由 5 台服务器(S1,S2,S3,S4,S5)组成的组中,如果在(S1,S2)和(S3,S4,S5)之间存在断开连接,则存在网络分区。第一组(S1,S2)现在处于少数派,因为它无法联系到超过一半的组。而多数派组(S3,S4,S5)仍在运行,少数派组等待指定的时间进行网络重新连接。有关此场景的详细描述,请参见第 20.7.8 节,“处理网络分区和丢失法定人数”。
默认情况下,group_replication_unreachable_majority_timeout
设置为 0,这意味着由于网络分区而发现自己处于少数派的成员将永远等待离开组。如果设置了超时时间,当指定时间到达时,少数派处理的所有待处理事务都将被回滚,并且少数派分区中的服务器将移至ERROR
状态。如果成员的group_replication_autorejoin_tries
系统变量设置了指定的自动重新加入尝试次数,它将在超级只读模式下进行指定次数的重新加入尝试。如果成员没有指定任何自动重新加入尝试,或者已经耗尽了指定次数的尝试次数,则会按照系统变量group_replication_exit_state_action
指定的操作进行。
警告
当你有一个对称的组,例如只有两个成员(S0,S2),如果存在网络分区且没有多数派,在配置的超时时间后,所有成员都会进入ERROR
状态。
欲了解更多关于此选项的信息,请参阅 第 20.7.7.2 节,“无法达到多数超时”。 group_replication_view_change_uuid
命令行格式 | --group-replication-view-change-uuid=value |
引入版本 | 8.0.26 |
系统变量 | group_replication_view_change_uuid |
作用域 | 全局 |
动态 | 是 |
SET_VAR 提示适用 |
否 |
类型 | 字符串 |
默认值 | AUTOMATIC |
- 注意
这个系统变量是一个整个组的配置设置,需要对复制组进行完全重启才能使更改生效。group_replication_view_change_uuid
指定一个替代 UUID,用作组生成的视图更改事件中 GTID 标识符的 UUID 部分。替代 UUID 使这些内部生成的事务易于与从客户端接收的事务区分开。如果您的设置允许在组之间进行故障切换,并且您需要识别和丢弃特定于备份组的事务,则这可能很有用。此系统变量的默认值为AUTOMATIC
,意味着视图更改事件的 GTID 使用由group_replication_group_name
系统变量指定的组名,就像来自客户端的事务一样。在没有此系统变量的版本中,组成员被视为具有值AUTOMATIC
。
替代 UUID 必须与由group_replication_group_name
系统变量指定的组名不同,并且必须与任何组成员的服务器 UUID 不同。它还必须与应用于拓扑中任何复制通道上的匿名事务的 GTID 中使用的任何 UUID 不同,使用CHANGE REPLICATION SOURCE TO
语句的ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS
选项。
这个系统变量是一个群组范围的配置设置。它必须在所有群组成员上具有相同的数值,不能在 Group Replication 运行时更改,并且需要对群组进行完全重启(由具有group_replication_bootstrap_group=ON
的服务器引导)以使数值更改生效。有关在已执行和认证事务的群组中安全引导群组的说明,请参见 Section 20.5.2, “Restarting a Group”。
如果群组对这个系统变量有一个数值设置,而加入的成员对这个系统变量有一个不同的数值设置,那么加入的成员在数值匹配之前无法加入群组。如果群组成员对这个系统变量有一个数值设置,而加入的成员不支持这个系统变量,那么它无法加入群组。