MySQL8 中文参考(二十二)(4)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL8 中文参考(二十二)

MySQL8 中文参考(二十二)(3)https://developer.aliyun.com/article/1566119


等待仪器

性能模式等待仪器跟踪需要时间的事件。克隆等待事件仪器包括:

  • wait/synch/mutex/innodb/clone_snapshot_mutex:跟踪克隆快照互斥锁的等待事件,该互斥锁在多个克隆线程之间同步访问动态快照对象(在捐赠者和接收者之间)。
  • wait/synch/mutex/innodb/clone_sys_mutex:跟踪克隆系统互斥锁的等待事件。在 MySQL 服务器实例中有一个克隆系统对象。此互斥锁在捐赠者和接收者之间同步访问克隆系统对象。它由克隆线程和其他前台和后台线程获取。
  • wait/synch/mutex/innodb/clone_task_mutex:跟踪克隆任务互斥锁的等待事件,用于克隆任务管理。clone_task_mutex由克隆线程获取。
  • wait/io/file/innodb/innodb_clone_file: 跟踪克隆操作的文件上的所有 I/O 等待操作。

关于监控InnoDB互斥等待的信息,请参阅第 17.16.2 节,“使用性能模式监控 InnoDB 互斥等待”。关于一般监控等待事件的信息,请参阅第 29.12.4 节,“性能模式等待事件表”。

阶段工具

性能模式阶段事件跟踪语句执行过程中发生的步骤。克隆阶段事件工具包括:

  • stage/innodb/clone (file copy): 表示克隆操作的文件复制阶段的进度。
  • stage/innodb/clone (redo copy): 表示克隆操作的重做复制阶段的进度。
  • stage/innodb/clone (page copy): 表示克隆操作的页面复制阶段的进度。

关于使用阶段事件监控克隆操作的信息,请参阅使用性能模式阶段事件监控克隆操作。关于一般监控阶段事件的信息,请参阅第 29.12.5 节,“性能模式阶段事件表”。

语句工具

性能模式语句事件跟踪语句执行。当启动克隆操作时,由克隆语句工具跟踪的不同语句类型可能并行执行。您可以在性能模式语句事件表中观察这些语句事件。执行的语句数量取决于clone_max_concurrencyclone_autotune_concurrency设置。

克隆语句事件工具包括:

  • statement/abstract/clone: 跟踪在被分类为本地、客户端或服务器操作类型之前的任何克隆操作的语句事件。
  • statement/clone/local: 跟踪本地克隆操作的克隆语句事件;在执行CLONE LOCAL语句时生成。
  • statement/clone/client: 跟踪发生在接收端 MySQL 服务器实例上的远程克隆语句事件;在接收端执行CLONE INSTANCE语句时生成。
  • statement/clone/server: 跟踪发生在捐赠 MySQL 服务器实例上的远程克隆语句事件;在接收端执行CLONE INSTANCE语句时生成。

欲了解有关监控性能模式语句事件的更多信息,请参见 第 29.12.6 节,“性能模式语句事件表”。

内存工具

性能模式内存工具跟踪内存使用情况。克隆内存使用工具包括:

  • memory/innodb/clone: 跟踪 InnoDB 为动态快照分配的内存。
  • memory/clone/data: 跟踪克隆操作期间克隆插件分配的内存。

欲了解使用性能模式监控内存使用情况的更多信息,请参见 第 29.12.20.10 节,“内存摘要表”。

Com_clone 状态变量

Com_clone 状态变量提供了 CLONE 语句执行次数的计数。

欲了解更多信息,请参考关于 Com_xxx 语句计数变量的讨论,见 第 7.1.10 节,“服务器状态变量”。

原文:dev.mysql.com/doc/refman/8.0/en/clone-plugin-stop.html

7.6.7.11 停止克隆操作

如有必要,您可以使用KILL QUERY *processlist_id*语句停止克隆操作。

在接收端的 MySQL 服务器实例中,您可以从clone_status表的PID列中检索克隆操作的进程列表标识符(PID)。

mysql> SELECT * FROM performance_schema.clone_status\G
*************************** 1\. row ***************************
             ID: 1
            PID: 8
          STATE: In Progress
     BEGIN_TIME: 2019-07-15 11:58:36.767
       END_TIME: NULL
         SOURCE: LOCAL INSTANCE
    DESTINATION: /*path/to/clone_dir*/
       ERROR_NO: 0
  ERROR_MESSAGE:
    BINLOG_FILE:
BINLOG_POSITION: 0
  GTID_EXECUTED:

您还可以从INFORMATION_SCHEMA PROCESSLIST表的ID列,SHOW PROCESSLIST输出的Id列,或性能模式threads表的PROCESSLIST_ID列中检索进程列表标识符。这些获取 PID 信息的方法可用于捐赠者或接收者的 MySQL 服务器实例。

dev.mysql.com/doc/refman/8.0/en/clone-plugin-option-variable-reference.html

7.6.7.12 克隆系统变量参考

表 7.7 克隆系统变量参考

名称 命令行 选项文件 系统变量 状态变量 变量范围 动态
自动调整并发性 全局
克隆块 DDL 全局
克隆缓冲区大小 全局
DDL 超时 全局
数据丢弃后的延迟 全局
网络故障后的捐赠者超时 全局
启用压缩 全局
最大并发数 全局
最大数据带宽 全局
克隆最大网络带宽 全局
SSL CA 全局
SSL 证书 全局
SSL 密钥 全局
克隆有效捐赠者列表 全局
名称 命令行 选项文件 系统变量 状态变量 变量范围 动态

原文:dev.mysql.com/doc/refman/8.0/en/clone-plugin-options-variables.html

7.6.7.13 克隆系统变量

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

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

通常,设置全局系统变量的运行时值需要SYSTEM_VARIABLES_ADMIN权限(或已弃用的SUPER权限)。有关更多信息,请参见第 7.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_concurrencyclone_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
  • 在克隆操作期间在捐赠者 MySQL 服务器实例上启用独占备份锁,这会阻止捐赠者上的并发 DDL 操作。参见第 7.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 操作完成之前,克隆操作无法继续进行。从 MySQL 8.0.27 开始,如果clone_block_ddl变量设置为OFF(默认值),则在克隆操作期间允许在捐赠者上进行并发 DDL 操作。在这种情况下,克隆操作不必等待捐赠者上的备份锁。参见第 7.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
单位 分钟
  • 定义了在网络故障后,捐赠方允许接收方重新连接并重新启动克隆操作的时间长度(以分钟为单位)。更多信息请参见第 7.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_concurrencyclone_max_concurrency定义了为远程克隆操作生成的线程数。
    推荐远程克隆操作每个线程的最小数据传输速率为 1 Mebibyte(MiB)每秒。远程克隆操作的数据传输速率由 clone_max_data_bandwidth 变量控制。
  • clone_max_data_bandwidth
命令行格式 --clone-max-data-bandwidth
引入版本 8.0.17
系统变量 clone_max_data_bandwidth
作用范围 全局
动态
SET_VAR Hint Applies
类型 整数
默认值 0
最小值 0
最大值 1048576
单位 MiB/秒
  • 定义了远程克隆操作每秒的最大数据传输速率(以  Mebibytes(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
引入版本 8.0.17
系统变量 clone_max_network_bandwidth
作用范围 全局
动态
SET_VAR Hint Applies
类型 整数
默认值 0
最小值 0
最大值 1048576
单位 MiB/秒
  • 指定远程克隆操作每秒的最大近似网络传输速率(以   mebibytes(MiB)为单位)。此变量可用于管理克隆操作对网络带宽的性能影响。仅当网络带宽饱和,影响捐赠��实例上的性能时才应设置该值。值为  0 表示“无限制”,允许以网络上最高可能的数据传输速率进行克隆,提供最佳性能。此设置仅适用于接收端 MySQL 服务器实例。
  • clone_ssl_ca
命令行格式 --clone-ssl-ca=file_name
引入版本 8.0.14
系统变量 clone_ssl_ca
作用范围 全局
动态
SET_VAR 提示适用
类型 文件名
默认值 空字符串
  • 指定证书颁发机构(CA)文件的路径。用于配置远程克隆操作的加密连接。此设置在接收端配置,并在连接到捐赠者时使用。
  • clone_ssl_cert
命令行格式 --clone-ssl-cert=file_name
引入版本 8.0.14
系统变量 clone_ssl_cert
作用范围 全局
动态
SET_VAR 提示适用
类型 文件名
默认值 空字符串
  • 指定公钥证书的路径。用于配置远程克隆操作的加密连接。此设置在接收端配置,并在连接到捐赠者时使用。
  • clone_ssl_key
命令行格式 --clone-ssl-key=file_name
引入版本 8.0.14
系统变量 clone_ssl_key
作用范围 全局
动态
SET_VAR 提示适用
类型 文件名
默认值 空字符串
  • 指定私钥文件的路径。用于配置远程克隆操作的加密连接。此设置在接收端配置,并在连接到捐赠者时使用。
  • 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 Protocol version 6 (IPv6)地址格式。可以使用 IPv6 地址的别名。IPv4 地址可以直接使用。

原文:dev.mysql.com/doc/refman/8.0/en/clone-plugin-limitations.html

7.6.7.14 克隆插件限制

克隆插件受到以下限制:

  • 无法从不同的 MySQL 服务器系列克隆实例。例如,您不能在 MySQL 8.0 和 MySQL 8.4  之间克隆,但可以在同一系列内克隆,例如 MySQL 8.0.37 和 MySQL 8.0.42。在 8.0.37  之前,点发布号也必须匹配,因此不允许克隆类似于 8.0.36 到 8.0.42 或反之亦然。
  • 在 MySQL 8.0.27 之前,在克隆操作期间不允许在捐赠者和接收者上进行 DDL,包括TRUNCATE TABLE。在选择数据源时应考虑此限制。一种解决方法是使用专用的捐赠者实例,在克隆数据时可以阻止 DDL 操作。允许并发 DML。
    从 MySQL 8.0.27 开始,默认情况下允许在捐赠者上进行并发 DDL。对于捐赠者上的并发 DDL 的支持由clone_block_ddl变量控制。请参见第 7.6.7.4 节,“克隆和并发 DDL”。
  • 仅在 MySQL 8.0.26 及更高版本中支持从捐赠者 MySQL 服务器实例克隆到相同版本和发布的热修复 MySQL 服务器实例。
  • 一次只能克隆一个 MySQL 实例。不支持在单个克隆操作中克隆多个 MySQL 实例。
  • 未支持远程克隆操作(在CLONE INSTANCE语句中指定捐赠者 MySQL 服务器实例的端口号时)的mysqlx_port指定的 X 协议端口。
  • 克隆插件不支持克隆 MySQL 服务器配置。接收方 MySQL 服务器实例保留其配置,包括持久化的系统变量设置(参见第 7.1.9.3 节,“持久化系统变量”)。
  • 克隆插件不支持克隆二进制日志。
  • 克隆插件仅克隆存储在InnoDB中的数据。不会克隆其他存储引擎的数据。存储在任何模式中的MyISAMCSV表将被克隆为空表。
  • 通过 MySQL 路由器连接到捐赠者 MySQL 服务器实例不受支持。
  • 本地克隆操作不支持使用绝对路径创建的通用表空间的克隆。克隆的表空间文件与源表空间文件具有相同路径会引起冲突。


MySQL8 中文参考(二十二)(5)https://developer.aliyun.com/article/1566121

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
关系型数据库 MySQL Unix
MySQL8 中文参考(二十三)(3)
MySQL8 中文参考(二十三)
48 4
|
4月前
|
存储 缓存 关系型数据库
MySQL8 中文参考(二十一)(5)
MySQL8 中文参考(二十一)
74 3
|
4月前
|
存储 监控 Java
MySQL8 中文参考(二十一)(4)
MySQL8 中文参考(二十一)
112 3
|
4月前
|
存储 安全 关系型数据库
MySQL8 中文参考(二十一)(1)
MySQL8 中文参考(二十一)
46 3
|
4月前
|
存储 关系型数据库 MySQL
MySQL8 中文参考(二十一)(3)
MySQL8 中文参考(二十一)
65 2
|
4月前
|
关系型数据库 MySQL Unix
MySQL8 中文参考(二十一)(2)
MySQL8 中文参考(二十一)
56 2
|
4月前
|
关系型数据库 MySQL 数据安全/隐私保护
MySQL8 中文参考(二十五)(5)
MySQL8 中文参考(二十五)
38 2
|
4月前
|
存储 关系型数据库 MySQL
MySQL8 中文参考(二十四)(1)
MySQL8 中文参考(二十四)
43 2
|
4月前
|
NoSQL 关系型数据库 MySQL
MySQL8 中文参考(二十三)(2)
MySQL8 中文参考(二十三)
52 2
|
4月前
|
存储 关系型数据库 MySQL
MySQL8 中文参考(二十三)(1)
MySQL8 中文参考(二十三)
31 2