Documentation Home

5.6.7.13 克隆系统变量

本节介绍控制克隆插件操作的系统变量。如果在启动时指定的值不正确,克隆插件可能无法正确初始化并且服务器不会加载它。在这种情况下,服务器也可能会为其他克隆设置生成错误消息,因为它无法识别它们。

每个系统变量都有一个默认值。可以在服务器启动时使用命令行或选项文件中的选项设置系统变量。它们可以在运行时使用SET语句动态更改,这使您能够修改服务器的操作而无需停止并重新启动它。

设置全局系统变量运行时值通常需要SYSTEM_VARIABLES_ADMIN 特权(或已弃用的 SUPER特权)。有关详细信息,请参阅第 5.1.9.1 节,“系统变量权限”

克隆变量在执行克隆操作的接收方 MySQL 服务器实例上配置。

  • clone_autotune_concurrency

    命令行格式 --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

    命令行格式 --clone-buffer-size
    介绍 8.0.17
    系统变量 clone_buffer_size
    范围 全球的
    动态的 是的
    SET_VAR提示适用
    类型 整数
    默认值 4194304
    最小值 1048576
    最大值 268435456
    单元 字节

    定义在本地克隆操作期间传输数据时使用的中间缓冲区的大小。默认值为 4 兆字节 (MiB)。较大的缓冲区大小可能允许 I/O 设备驱动程序并行获取数据,从而提高克隆性能。

  • clone_block_ddl

    命令行格式 --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

    命令行格式 --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

    命令行格式 --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

    命令行格式 --clone-enable-compression
    介绍 8.0.17
    系统变量 clone_enable_compression
    范围 全球的
    动态的 是的
    SET_VAR提示适用
    类型 布尔值
    默认值 OFF

    在远程克隆操作期间在网络层启用数据压缩。压缩以 CPU 为代价节省网络带宽。启用压缩可以提高数据传输速率。此设置仅适用于收件人 MySQL 服务器实例。

  • clone_max_concurrency

    命令行格式 --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

    命令行格式 --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

    命令行格式 --clone-max-network-bandwidth
    介绍 8.0.17
    系统变量 clone_max_network_bandwidth
    范围 全球的
    动态的 是的
    SET_VAR提示适用
    类型 整数
    默认值 0
    最小值 0
    最大值 1048576
    单元 miB/秒

    指定远程克隆操作的最大近似网络传输速率(以每秒兆字节 (MiB) 为单位)。此变量可用于管理克隆操作对网络带宽的性能影响。它应该只在网络带宽饱和时设置,影响施主实例的性能。值 0 表示 无限制,允许以最高可能的网络数据传输速率进行克隆,从而提供最佳性能。此设置仅适用于收件人 MySQL 服务器实例。

  • clone_ssl_ca

    命令行格式 --clone-ssl-ca=file_name
    介绍 8.0.14
    系统变量 clone_ssl_ca
    范围 全球的
    动态的 是的
    SET_VAR提示适用
    类型 文件名
    默认值 empty string

    指定证书颁发机构 (CA) 文件的路径。用于为远程克隆操作配置加密连接。此设置在接收者上配置并在连接到捐赠者时使用。

  • clone_ssl_cert

    命令行格式 --clone-ssl-cert=file_name
    介绍 8.0.14
    系统变量 clone_ssl_cert
    范围 全球的
    动态的 是的
    SET_VAR提示适用
    类型 文件名
    默认值 empty string

    指定公钥证书的路径。用于为远程克隆操作配置加密连接。此设置在接收者上配置并在连接到捐赠者时使用。

  • clone_ssl_key

    命令行格式 --clone-ssl-key=file_name
    介绍 8.0.14
    系统变量 clone_ssl_key
    范围 全球的
    动态的 是的
    SET_VAR提示适用
    类型 文件名
    默认值 empty string

    指定私钥文件的路径。用于为远程克隆操作配置加密连接。此设置在接收者上配置并在连接到捐赠者时使用。

  • clone_valid_donor_list

    命令行格式 --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 地址。