本节介绍控制克隆插件操作的系统变量。如果在启动时指定的数值不正确,克隆插件可能无法正常初始化,服务器也不会加载它。在这种情况下,服务器也可能产生有关其他克隆设置的错误消息,因为它无法识别它们。
每个系统变量都有一个默认值。可以使用命令行上的选项或选项文件在服务器启动时设置系统变量。可以使用 SET
语句在运行时动态地更改它们,这使您能够修改服务器的操作,而无需停止和重新启动它。
设置全局系统变量运行时值通常需要 SYSTEM_VARIABLES_ADMIN
权限(或已弃用的 SUPER
权限)。有关更多信息,请参见 第 7.1.9.1 节,“系统变量权限”。
克隆变量是在执行克隆操作的接收方 MySQL 服务器实例上配置的。
-
命令行格式 --clone-autotune-concurrency
系统变量 clone_autotune_concurrency
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 ON
当
clone_autotune_concurrency
启用(默认值)时,将为远程克隆操作动态地生成其他线程以优化数据传输速度。该设置仅适用于接收方 MySQL 服务器实例。在克隆操作期间,线程数会逐步增加,直到达到当前线程数的两倍。每次递增都会评估对数据传输速度的影响。根据以下规则,进程要么继续,要么停止
如果数据传输速度在递增后下降超过 5%,则进程停止。
如果达到目标的 25% 后至少有 5% 的改进,则进程继续。否则,进程停止。
如果达到目标的 50% 后至少有 10% 的改进,则进程继续。否则,进程停止。
如果达到目标后至少有 25% 的改进,则进程继续,并朝向当前线程数的两倍的新目标继续。否则,进程停止。
自动调整进程不支持减少线程数。
clone_max_concurrency
变量定义了可以生成的线程的最大数量。如果
clone_autotune_concurrency
被禁用,则clone_max_concurrency
定义了为远程克隆操作生成的线程数。 -
命令行格式 --clone-buffer-size
系统变量 clone_buffer_size
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 4194304
最小值 1048576
最大值 268435456
单位 字节 定义在本地克隆操作期间传输数据时使用的中间缓冲区的大小。默认值为 4 兆字节(MiB)。更大的缓冲区大小可能允许 I/O 设备驱动程序并行获取数据,这可以提高克隆性能。
-
命令行格式 --clone-block-ddl
系统变量 clone_block_ddl
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
在克隆操作期间在捐赠者 MySQL 服务器实例上启用对捐赠者的排他备份锁,这会阻止对捐赠者的并发 DDL 操作。请参见 第 7.6.7.4 节,“克隆和并发 DDL”。
-
命令行格式 --clone-delay-after-data-drop
系统变量 clone_delay_after_data_drop
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 0
最小值 0
最大值 3600
单位 字节 指定在远程克隆操作开始时,在删除接收方 MySQL Server 实例上的现有数据后立即执行的延迟时间段。延迟旨在为接收方主机上的文件系统提供足够的时间来释放空间,然后再从捐赠方 MySQL Server 实例克隆数据。某些文件系统,例如 VxFS,会在后台进程中异步释放空间。在这些文件系统上,在删除现有数据后过早地克隆数据会导致由于空间不足而导致克隆操作失败。最大延迟时间为 3600 秒(1 小时)。默认设置为 0(无延迟)。
此变量仅适用于远程克隆操作,并在接收方 MySQL Server 实例上配置。
-
命令行格式 --clone-ddl-timeout
系统变量 clone_ddl_timeout
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 300
最小值 0
最大值 2592000
单位 秒 克隆操作等待备份锁的时间(以秒为单位)。备份锁在执行克隆操作时阻止并发 DDL。此设置适用于捐赠方和接收方 MySQL 服务器实例。
设置为 0 表示克隆操作不会等待备份锁。在这种情况下,执行并发 DDL 操作可能会导致克隆操作失败。
如果
clone_block_ddl
设置为OFF
(默认值),则在克隆操作期间允许在捐赠方上进行并发 DDL。在这种情况下,克隆操作不需要等待捐赠方上的备份锁。请参见 第 7.6.7.4 节,“克隆和并发 DDL”。 clone_donor_timeout_after_network_failure
命令行格式 --clone-donor-timeout-after-network-failure
系统变量 clone_donor_timeout_after_network_failure
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 5
最小值 0
最大值 30
单位 分钟 定义捐赠方在网络故障后允许接收方重新连接并重新启动克隆操作的时间(以分钟为单位)。有关更多信息,请参见 第 7.6.7.9 节,“远程克隆操作故障处理”。
此变量在捐赠方 MySQL 服务器实例上设置。在接收方 MySQL 服务器实例上设置它不会产生任何影响。
-
命令行格式 --clone-enable-compression
系统变量 clone_enable_compression
范围 全局 动态 是 SET_VAR
提示适用否 类型 布尔值 默认值 OFF
在远程克隆操作期间,在网络层启用数据压缩。压缩可以节省网络带宽,但会占用 CPU 资源。启用压缩可能会提高数据传输速率。此设置仅适用于接收方 MySQL 服务器实例。
-
命令行格式 --clone-max-concurrency
系统变量 clone_max_concurrency
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 16
最小值 1
最大值 128
单位 线程 定义远程克隆操作的并发线程数。默认值为 16。更多的线程可以提高克隆性能,但也会减少允许的并发客户端连接数,这会影响现有客户端连接的性能。此设置仅适用于接收方 MySQL 服务器实例。
如果
clone_autotune_concurrency
启用(默认值),则clone_max_concurrency
是可以为远程克隆操作动态生成的线程数。如果clone_autotune_concurrency
禁用,则clone_max_concurrency
定义为远程克隆操作生成的线程数。对于远程克隆操作,建议每个线程的最小数据传输速率为 1 兆字节(MiB)。远程克隆操作的数据传输速率由
clone_max_data_bandwidth
变量控制。 -
命令行格式 --clone-max-data-bandwidth
系统变量 clone_max_data_bandwidth
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 0
最小值 0
最大值 1048576
单位 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 是下一个最有可能的瓶颈。 -
命令行格式 --clone-max-network-bandwidth
系统变量 clone_max_network_bandwidth
范围 全局 动态 是 SET_VAR
提示适用否 类型 整数 默认值 0
最小值 0
最大值 1048576
单位 MiB/秒 指定远程克隆操作的每秒最大近似网络传输速率(以兆字节(MiB)为单位)。此变量可用于管理克隆操作对网络带宽的性能影响。仅当网络带宽饱和并影响捐赠方实例上的性能时,才应设置此变量。值为 0 表示“无限制”,允许克隆操作以网络上最高可能的数据传输速率运行,从而提供最佳性能。此设置仅适用于接收方 MySQL 服务器实例。
-
命令行格式 --clone-ssl-ca=file_name
系统变量 clone_ssl_ca
范围 全局 动态 是 SET_VAR
提示适用否 类型 文件名 默认值 空字符串
指定证书颁发机构 (CA) 文件的路径。用于配置远程克隆操作的加密连接。此设置在接收方上配置,并在连接到捐赠方时使用。
-
命令行格式 --clone-ssl-cert=file_name
系统变量 clone_ssl_cert
范围 全局 动态 是 SET_VAR
提示适用否 类型 文件名 默认值 空字符串
指定公钥证书的路径。用于配置远程克隆操作的加密连接。此设置在接收方上配置,并在连接到捐赠方时使用。
-
命令行格式 --clone-ssl-key=file_name
系统变量 clone_ssl_key
范围 全局 动态 是 SET_VAR
提示适用否 类型 文件名 默认值 空字符串
指定私钥文件的路径。用于配置远程克隆操作的加密连接。此设置在接收方上配置,并在连接到捐赠方时使用。
-
命令行格式 --clone-valid-donor-list=value
系统变量 clone_valid_donor_list
范围 全局 动态 是 SET_VAR
提示适用否 类型 字符串 默认值 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
特权。不支持互联网协议版本 6 (IPv6) 地址格式。不支持互联网协议版本 6 (IPv6) 地址格式。可以改用 IPv6 地址的别名。可以按原样使用 IPv4 地址。