7.6.7.13 克隆系统变量
本节描述克隆插件的系统变量。如果在启动时指定的值不正确,克隆插件可能无法初始化properly,并且服务器也不会加载它。在这种情况下,服务器还可能会产生其他克隆设置错误信息。
每个系统变量都有默认值。系统变量可以在服务器启动时使用命令行选项或配置文件来设置,也可以动态地在运行时使用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%的改进,过程继续。否则,过程停止。
-
如果达到目标后至少有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 MiB。更大的缓冲区大小可能使I/O设备驱动程序并行fetch数据,可以提高克隆性能。
-
Command-Line Format --clone-block-ddl
System Variable clone_block_ddl
Scope 全局 Dynamic 是 SET_VAR
Hint Applies否 Type 布尔值 Default Value OFF
在克隆操作中,启用独占备份锁定对捐赠 MySQL 服务器实例,从而阻止捐赠实例上的并发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 服务器实例上的现有数据后延迟的时间段。延迟期望为文件系统在捐赠主机上释放空间,以便从捐赠 MySQL 服务器实例中克隆数据。某些文件系统,如 VxFS,异步地在背景进程中释放空间。在这些文件系统上,太早地克隆数据可能会导致克隆操作失败,因为空间不足。最大延迟期限为3600秒(1小时)。默认设置为0(无延迟)。
这个变量只适用于远程克隆操作,并且在捐赠 MySQL 服务器实例上配置。
-
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服务器实例上都生效。
如果设置为0,克隆操作不等待备份锁,在这种情况下,执行并发DDL操作可能会导致克隆操作失败。
在克隆操作中,捐赠服务器允许并发DDL,如果
clone_block_ddl
设置为OFF
(默认值)。在这种情况下,克隆操作不需要在捐赠服务器上等待备份锁。请参阅第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 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/秒 定义远程克隆操作的最大数据传输率,单位为兆字节(MiB)每秒。该变量帮助管理克隆操作对性能的影响。在设置限制时,应考虑捐赠磁盘I/O带宽是否饱和,影响性能。如果值为0,则表示“无限”,允许克隆操作以最高可能的数据传输率运行。这一设置仅适用于接收端MySQL服务器实例。
最小数据传输率为1 MiB每秒,按线程计算。例如,如果有8个线程,则最小传输率为8 MiB每秒。
clone_max_concurrency
变量控制远程克隆操作的最大线程数。请求的数据传输率由
clone_max_data_bandwidth
指定,可能与performance_schema.clone_progress
表中的DATA_SPEED
列报告的实际数据传输率不同。如果您的克隆操作未达到期望的数据传输率,并且有可用带宽,请检查接收端和捐赠端的I/O使用情况。如果有闲置带宽,I/O将是下一个最可能的瓶颈。 -
Command-Line Format --clone-max-network-bandwidth
System Variable clone_max_network_bandwidth
Scope Global 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 指定加密连接的证书授权文件路径。用于远程克隆操作的配置,配置在接收端,并在与捐赠端建立连接时使用。
-
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
" 需要"SYSTEM_VARIABLES_ADMIN
"特权,而执行远程克隆操作需要"CLONE_ADMIN
"特权,允许将这些责任分配给不同的角色。不支持 Internet Protocol 版本 6(IPv6)地址格式。可以使用 IPv6 地址的别名 Alternatively,可以直接使用 IPv4 地址。