本节描述了控制克隆插件操作的系统变量。如果启动时指定的值不正确,克隆插件可能无法正确初始化,服务器将不会加载它。在这种情况下,服务器也可能为其他克隆设置生成错误消息,因为它不认识它们。
每个系统变量都有默认值。系统变量可以在服务器启动时使用命令行选项或选项文件设置。它们可以使用 SET
语句动态地在运行时更改,从而允许您在不需要停止和重新启动服务器的情况下修改服务器的操作。
通常,设置全局系统变量的运行时值需要 SYSTEM_VARIABLES_ADMIN
权限(或已弃用的 SUPER
权限)。有关更多信息,请参阅 第 7.1.9.1 节,“系统变量权限”。
克隆变量是在执行克隆操作的接收 MySQL 服务器实例上配置的。
-
Command-Line Format --clone-autotune-concurrency System Variable clone_autotune_concurrency Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value ON 当
clone_autotune_concurrency
启用(默认情况下)时,会动态生成额外的线程以优化远程克隆操作的数据传输速度。该设置仅适用于接收 MySQL 服务器实例。在克隆操作期间,线程数将逐步增加,目标是当前线程数的两倍。每次增加时都会评估数据传输速度的影响。如果数据传输速度下降超过 5%,则停止过程。
-
如果在达到目标的 25% 时数据传输速度至少提高了 5%,则继续过程。否则,停止过程。
-
如果在达到目标的 50% 时数据传输速度至少提高了 10%,则继续过程。否则,停止过程。
-
如果在达到目标的 50% 时数据传输速度至少提高了 10%,则继续过程。否则,停止过程。
-
如果在达到目标后至少有25%的改进,过程将继续向新的目标,目标是当前线程数的两倍。否则,过程将停止。
自动调整过程不支持减少线程数量。
变量
clone_max_concurrency
定义了可以生成的最大线程数。如果
clone_autotune_concurrency
被禁用,clone_max_concurrency
定义了远程克隆操作中生成的线程数。 -
-
Command-Line Format --clone-buffer-size System Variable clone_buffer_size Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 4194304 Minimum Value 1048576 Maximum Value 268435456 Unit 字节 定义了在本地克隆操作期间用于传输数据的中间缓冲区的大小。默认值为4 mebibytes(MiB)。较大的缓冲区大小可能允许I/O设备驱动程序并行获取数据,从而改善克隆性能。
-
Command-Line Format --clone-block-ddl System Variable clone_block_ddl Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF 在克隆操作期间在donor MySQL Server实例上启用独占备份锁,以阻止并发DDL操作。请参阅第7.6.7.4节,“克隆和并发DDL”。
-
Command-Line Format --clone-delay-after-data-drop System Variable clone_delay_after_data_drop Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 0 Minimum Value 0 Maximum Value 3600 Unit 字节 指定在远程克隆操作开始时,在接收方 MySQL Server 实例上删除现有数据后的延迟期。该延迟旨在为接收主机上的文件系统释放空间提供足够的时间,以便从捐赠者 MySQL Server 实例克隆数据。在某些文件系统(如 VxFS)上,克隆操作可能会由于空间不足而失败,因为这些文件系统异步释放空间。该延迟期的最大值为 3600 秒(1 小时)。默认设置为 0(无延迟)。
该变量仅适用于远程克隆操作,并在接收方 MySQL Server 实例上配置。
-
Command-Line Format --clone-ddl-timeout System Variable clone_ddl_timeout Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 300 Minimum Value 0 Maximum Value 2592000 Unit 秒 克隆操作等待备份锁定的时间,以秒为单位。备份锁定阻止了并发 DDL 操作的执行,该设置适用于捐赠者和接收方 MySQL Server 实例。
如果设置为 0,则克隆操作不等待备份锁定。在这种情况下,执行并发 DDL 操作可能会导致克隆操作失败。
如果
clone_block_ddl
设置为OFF
(默认),则在捐赠者上允许并发 DDL 操作。在这种情况下,克隆操作不需要等待捐赠者的备份锁定。请参阅 第 7.6.7.4 节,“克隆和并发 DDL”。 -
clone_donor_timeout_after_network_failure
Command-Line Format --clone-donor-timeout-after-network-failure System Variable clone_donor_timeout_after_network_failure Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 5 Minimum Value 0 Maximum Value 30 Unit 分钟 定义了捐赠者允许的时间(以分钟为单位),以便在网络故障后重新连接并重新启动克隆操作。有关更多信息,请参阅第 7.6.7.9 节,“远程克隆操作故障处理”。
该变量设置在捐赠者 MySQL 服务器实例上。在接收者 MySQL 服务器实例上设置它没有效果。
-
Command-Line Format --clone-enable-compression System Variable clone_enable_compression Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF 启用远程克隆操作期间网络层的数据压缩。压缩可以节省网络带宽,但需要 CPU 资源。启用压缩可能会提高数据传输速率。该设置仅适用于接收者 MySQL 服务器实例。
-
Command-Line Format --clone-max-concurrency System Variable clone_max_concurrency Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 16 Minimum Value 1 Maximum Value 128 Unit 线程 定义远程克隆操作的最大并发线程数。默认值为 16。更多的线程可以提高克隆性能,但也会减少允许的同时客户端连接数,从而影响现有客户端连接的性能。该设置仅适用于接收者 MySQL 服务器实例。
如果
clone_autotune_concurrency
启用(默认情况下),clone_max_concurrency
是远程克隆操作可以动态生成的最大线程数。如果clone_autotune_concurrency
禁用,clone_max_concurrency
定义了远程克隆操作的线程数。远程克隆操作建议每个线程的最小数据传输率为 1 mebibyte (MiB)。远程克隆操作的数据传输率由
clone_max_data_bandwidth
变量控制。 -
Command-Line Format --clone-max-data-bandwidth System Variable clone_max_data_bandwidth Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 0 Minimum Value 0 Maximum Value 1048576 Unit MiB/秒 定义远程克隆操作的最大数据传输率,以 mebibyte (MiB) 每秒为单位。该变量有助于管理克隆操作的性能影响。如果磁盘 I/O 带宽饱和,影响性能,可以设置限制。值为 0 表示“无限制”,允许克隆操作以最高可能的数据传输率运行。该设置仅适用于接收方 MySQL 服务器实例。
每个线程的最小数据传输率为 1 MiB/秒。例如,如果有 8 个线程,则最小传输率为 8 MiB/秒。
clone_max_concurrency
变量控制远程克隆操作的最大线程数。由
clone_max_data_bandwidth
指定的请求数据传输率可能与DATA_SPEED
列在performance_schema.clone_progress
表中报告的实际数据传输率不同。如果您的克隆操作未达到所需的数据传输率,并且您有可用的带宽,请检查接收方和捐赠者的 I/O 使用情况。如果有未充分利用的带宽,I/O 是下一个最可能的瓶颈。 -
Command-Line Format --clone-max-network-bandwidth System Variable clone_max_network_bandwidth Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 整数 Default Value 0 Minimum Value 0 Maximum Value 1048576 Unit MiB/秒 指定远程克隆操作的最大近似网络传输速率(以MiB/秒为单位)。此变量可用于管理克隆操作对网络带宽的性能影响。当网络带宽饱和,影响捐赠实例的性能时,才应设置此变量。值为0表示“无限制”,允许克隆操作以最高可能的数据传输速率通过网络,提供最佳性能。此设置仅适用于接收器MySQL服务器实例。
-
Command-Line Format --clone-ssl-ca=file_name System Variable clone_ssl_ca Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 文件名 Default Value 空字符串 指定证书颁发机构(CA)文件的路径。用于配置远程克隆操作的加密连接。此设置在接收器上配置,并在连接到捐赠者时使用。
-
Command-Line Format --clone-ssl-cert=file_name System Variable clone_ssl_cert Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 文件名 Default Value 空字符串 指定公钥证书的路径。用于配置远程克隆操作的加密连接。此设置在接收器上配置,并在连接到捐赠者时使用。
-
Command-Line Format --clone-ssl-key=file_name System Variable clone_ssl_key Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 文件名 Default Value 空字符串 指定私钥文件的路径。用于配置远程克隆操作的加密连接。此设置在接收器上配置,并在连接到捐赠者时使用。
-
Command-Line Format --clone-valid-donor-list=value System Variable clone_valid_donor_list Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 字符串 Default Value NULL 定义远程克隆操作的有效捐赠主机地址。此设置将应用于接收方 MySQL 服务器实例。允许以以下格式指定逗号分隔的值:“
HOST1:PORT1,HOST2:PORT2,HOST3:PORT3
”。不允许有空格。变量
clone_valid_donor_list
通过提供对克隆数据来源的控制,添加了一层安全性。配置clone_valid_donor_list
所需的权限不同于执行远程克隆操作所需的权限,这允许将这些责任分配给不同的角色。配置clone_valid_donor_list
需要SYSTEM_VARIABLES_ADMIN
权限,而执行远程克隆操作需要CLONE_ADMIN
权限。不支持 Internet 协议版本 6(IPv6)地址格式。可以使用 IPv6 地址的别名代替。IPv4 地址可以原样使用。