本节介绍控制克隆插件操作的系统变量。如果在启动时指定的值不正确,克隆插件可能无法正确初始化并且服务器不会加载它。在这种情况下,服务器也可能会为其他克隆设置生成错误消息,因为它无法识别它们。
每个系统变量都有一个默认值。可以在服务器启动时使用命令行或选项文件中的选项设置系统变量。它们可以在运行时使用SET
语句动态更改,这使您能够修改服务器的操作而无需停止并重新启动它。
设置全局系统变量运行时值通常需要SYSTEM_VARIABLES_ADMIN
特权(或已弃用的
SUPER
特权)。有关详细信息,请参阅第 5.1.9.1 节,“系统变量权限”。
克隆变量在执行克隆操作的接收方 MySQL 服务器实例上配置。
-
命令行格式 --clone-autotune-concurrency
介绍 8.0.17 系统变量 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
介绍 8.0.17 系统变量 clone_buffer_size
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 4194304
最小值 1048576
最大值 268435456
单元 字节 定义在本地克隆操作期间传输数据时使用的中间缓冲区的大小。默认值为 4 兆字节 (MiB)。较大的缓冲区大小可能允许 I/O 设备驱动程序并行获取数据,从而提高克隆性能。
-
命令行格式 --clone-block-ddl
介绍 8.0.27 系统变量 clone_block_ddl
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 布尔值 默认值 OFF
在克隆操作期间在 donor MySQL Server 实例上启用独占备份锁,这会阻止 donor 上的并发 DDL 操作。请参阅 第 5.6.7.4 节,“克隆和并发 DDL”。
-
命令行格式 --clone-delay-after-data-drop
介绍 8.0.29 系统变量 clone_delay_after_data_drop
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 0
最小值 0
最大值 3600
单元 字节 指定在远程克隆操作开始时删除接收方 MySQL 服务器实例上的现有数据后立即延迟的时间。延迟旨在为接收方主机上的文件系统提供足够的时间,以便在从捐赠方 MySQL 服务器实例克隆数据之前释放空间。某些文件系统(例如 VxFS)在后台进程中异步释放空间。在这些文件系统上,在删除现有数据后过早地克隆数据可能会因空间不足而导致克隆操作失败。最长延迟时间为 3600 秒(1 小时)。默认设置为 0(无延迟)。
此变量仅适用于远程克隆操作,并在接收方 MySQL 服务器实例上配置。
-
命令行格式 --clone-ddl-timeout
介绍 8.0.17 系统变量 clone_ddl_timeout
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 300
最小值 0
最大值 2592000
单元 秒 克隆操作等待备份锁的时间(以秒为单位)。执行克隆操作时,备份锁会阻止并发 DDL。此设置适用于捐赠者和接受者 MySQL 服务器实例。
设置为 0 意味着克隆操作不等待备份锁。在这种情况下,执行并发 DDL 操作可能会导致克隆操作失败。
在 MySQL 8.0.27 之前,备份锁会在克隆操作期间阻止对捐赠者和接受者的并发 DDL 操作,并且在当前 DDL 操作完成之前无法进行克隆操作。
clone_block_ddl
从 MySQL 8.0.27 开始,如果变量设置为OFF
(默认值),则在克隆操作期间允许在捐赠者上使用并发 DDL 。在这种情况下,克隆操作不必等待捐赠者的备份锁。请参阅 第 5.6.7.4 节,“克隆和并发 DDL”。 clone_donor_timeout_after_network_failure
命令行格式 --clone-donor-timeout-after-network-failure
介绍 8.0.24 系统变量 clone_donor_timeout_after_network_failure
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 5
最小值 0
最大值 30
单元 分钟 定义捐赠者允许接受者在网络故障后重新连接并重新启动克隆操作的时间量(以分钟为单位)。有关详细信息,请参阅 第 5.6.7.9 节,“远程克隆操作失败处理”。
此变量在捐赠者 MySQL 服务器实例上设置。在收件人 MySQL 服务器实例上设置它无效。
-
命令行格式 --clone-enable-compression
介绍 8.0.17 系统变量 clone_enable_compression
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 布尔值 默认值 OFF
在远程克隆操作期间在网络层启用数据压缩。压缩以 CPU 为代价节省网络带宽。启用压缩可以提高数据传输速率。此设置仅适用于收件人 MySQL 服务器实例。
-
命令行格式 --clone-max-concurrency
介绍 8.0.17 系统变量 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
介绍 8.0.17 系统变量 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
可能与表中DATA_SPEED
列 报告的实际数据传输速率不同performance_schema.clone_progress
。如果您的克隆操作未达到所需的数据传输速率并且您有可用带宽,请检查接受者和捐赠者的 I/O 使用情况。如果带宽未得到充分利用,I/O 很可能是下一个瓶颈。 -
命令行格式 --clone-max-network-bandwidth
介绍 8.0.17 系统变量 clone_max_network_bandwidth
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 整数 默认值 0
最小值 0
最大值 1048576
单元 miB/秒 指定远程克隆操作的最大近似网络传输速率(以每秒兆字节 (MiB) 为单位)。此变量可用于管理克隆操作对网络带宽的性能影响。它应该只在网络带宽饱和时设置,影响施主实例的性能。值 0 表示 “无限制”,允许以最高可能的网络数据传输速率进行克隆,从而提供最佳性能。此设置仅适用于收件人 MySQL 服务器实例。
-
命令行格式 --clone-ssl-ca=file_name
介绍 8.0.14 系统变量 clone_ssl_ca
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 文件名 默认值 empty string
指定证书颁发机构 (CA) 文件的路径。用于为远程克隆操作配置加密连接。此设置在接收者上配置并在连接到捐赠者时使用。
-
命令行格式 --clone-ssl-cert=file_name
介绍 8.0.14 系统变量 clone_ssl_cert
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 文件名 默认值 empty string
指定公钥证书的路径。用于为远程克隆操作配置加密连接。此设置在接收者上配置并在连接到捐赠者时使用。
-
命令行格式 --clone-ssl-key=file_name
介绍 8.0.14 系统变量 clone_ssl_key
范围 全球的 动态的 是的 SET_VAR
提示适用不 类型 文件名 默认值 empty string
指定私钥文件的路径。用于为远程克隆操作配置加密连接。此设置在接收者上配置并在连接到捐赠者时使用。
-
命令行格式 --clone-valid-donor-list=value
介绍 8.0.17 系统变量 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
权限。不支持 Internet 协议版本 6 (IPv6) 地址格式。不支持 Internet 协议版本 6 (IPv6) 地址格式。可以改用 IPv6 地址的别名。可以按原样使用 IPv4 地址。