本节描述监视克隆操作的选项。
克隆操作可能需要一些时间才能完成,这取决于数据量和与数据传输相关的其他因素。控件可以监视接收MySQL服务器实例上克隆操作的状态和进度clone_status
而且clone_progress
性能架构表。
的clone_status
而且clone_progress
Performance Schema表只能用于监视接收MySQL服务器实例上的克隆操作。要监视提供MySQL服务器实例上的克隆操作,请使用克隆阶段事件,如中所述使用性能模式阶段事件监视克隆操作.
的
clone_status
表提供当前或最近执行的克隆操作的状态。克隆操作有四种可能的状态:没有开始
,在进行中
,完成
,失败的
.的
clone_progress
表按阶段提供当前或上次执行的克隆操作的进度信息。克隆操作的阶段包括数据下降
,拷贝文件
,PAGE_COPY
,REDO_COPY
,FILE_SYNC
,重新启动
,复苏
.
查询克隆操作的状态。
连接到接收MySQL服务器实例。
查询
clone_status
表:SELECT STATE FROM performance_schema.clone_status;+-----------+ | 状态 | +-----------+ | 完成 | +-----------+
如果克隆操作期间发生失败,可以查询clone_status
错误信息表:
SELECT STATE, ERROR_NO, ERROR_MESSAGE FROM performance_schema.clone_status;+-----------+----------+---------------+ | 状态| ERROR_NO | ERROR_MESSAGE | +-----------+----------+---------------+ | xxxxxxxxxxx xxx失败| |” " | +-----------+----------+---------------+
要查看克隆操作的每个阶段的详细信息:
连接到接收MySQL服务器实例。
查询
clone_progress
表格例如,以下查询为克隆操作的每个阶段提供状态和结束时间数据:SELECT STAGE, STATE, END_TIME FROM performance_schema.clone_progress;+-----------+-----------+----------------------------+ | 阶段国家| | end_time | +-----------+-----------+----------------------------+ | 下降数据| | 2019-01-27完成22:45:43.141261 | | | |完成文件副本2019-01-27 22:45:44.457572 | |页拷贝| | 2019-01-27完成22:45:44.577330 | | | | 2019-01-27完成重做副本22:45:44.679570 | | | | 2019-01-27完成文件同步22:45:44.918547 | | | |完成重启2019-01-27 22:45:48.583565 | | | |完成恢复2019-01-27 22:45:49.626595 | +-----------+-----------+----------------------------+
有关可监控的其他克隆状态和进度数据点,请参阅第27.12.19节“性能模式克隆表”.
克隆操作可能需要一些时间才能完成,这取决于数据量和与数据传输相关的其他因素。有三个阶段事件用于监视克隆操作的进展。每个阶段事件报告
而且WORK_COMPLETED
值。报告的值随着操作的进行而修改。WORK_ESTIMATED
这种监视克隆操作的方法可用于提供方或接收方MySQL服务器实例。
按发生顺序,克隆操作阶段事件包括:
复制innodb文件
:表示克隆操作的文件拷贝阶段进度。
而且WORK_ESTIMATED
单元是文件块。要传输的文件数量在文件复制阶段的开始就知道了,块的数量是根据文件数量估计的。WORK_COMPLETED
WORK_ESTIMATED
设置为估计的文件块数。WORK_COMPLETED
在每个块发送后更新。复制/复制页面
:表示克隆操作的页面复制阶段的进度。WORK_ESTIMATED
而且WORK_COMPLETED
单位是页面。一旦文件复制阶段完成,就知道要传输的页数,并且WORK_ESTIMATED
设置为此值。WORK_COMPLETED
在发送每个页面后更新。执行/innodb/clone(重做拷贝)
:表示克隆操作的重做复制阶段的进度。WORK_ESTIMATED
而且WORK_COMPLETED
单元是重做块。一旦页面复制阶段完成,要传输的重做块的数量就知道了WORK_ESTIMATED
设置为此值。WORK_COMPLETED
在每个块发送后更新。
下面的示例演示如何启用阶段/ innodb /克隆%
事件工具和相关使用者表来监视克隆操作。有关性能模式阶段事件工具和相关使用者的信息,请参见第27.12.5节“性能方案阶段事件表”.
启用
阶段/ innodb /克隆%
仪器:mysql>更新performance_schema。setup_instruments SET ENABLED = 'YES' WHERE NAME LIKE 'stage/innodb/clone%';
启用阶段事件使用者表,其中包括
events_stages_current
,events_stages_history
,events_stages_history_long
.mysql>更新performance_schema。setup_consumers SET ENABLED = 'YES' WHERE NAME LIKE '%stages%';
运行克隆操作。在本例中,将本地数据目录克隆到名为
cloned_dir
.mysql>克隆本地数据目录= '/path/to/cloned_dir';
通过查询“性能模式”查看克隆操作的进度
events_stages_current
表格所显示的阶段事件根据正在进行的克隆阶段而不同。的WORK_COMPLETED
列显示已完成的工作。的WORK_ESTIMATED
列显示所需的工作总数。mysql> SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED FROM performance_schema。WHERE EVENT_NAME LIKE 'stage/innodb/clone%';+--------------------------------+----------------+----------------+ | EVENT_NAME | WORK_COMPLETED | WORK_ESTIMATED | +--------------------------------+----------------+----------------+ | 阶段/ innodb /克隆(重做副本)| 1 | 1 | +--------------------------------+----------------+----------------+
的
events_stages_current
如果克隆操作已完成,则表返回空集。在这种情况下,您可以检查events_stages_history
表以查看已完成操作的事件数据。例如:SELECT EVENT_NAME, WORK_COMPLETED, WORK_ESTIMATED FROM events_stages_history WHERE EVENT_NAME LIKE 'stage/innodb/clone%'+--------------------------------+----------------+----------------+ | EVENT_NAME | WORK_COMPLETED | WORK_ESTIMATED | +--------------------------------+----------------+----------------+ | 阶段/ innodb /克隆(文件副本)| 301 | 301 | |阶段/ innodb /克隆(复制页)| 0 | 0 | |阶段/ innodb /克隆(重做副本)| 1 | 1 | +--------------------------------+----------------+----------------+
性能模式为克隆操作的高级性能监视提供工具。要查看可用的克隆工具,发出以下查询:
SELECT * FROM performance_schema。setup_instruments WHERE NAME LIKE WHERE NAME LIKE '%clone%';+----------------------------------------------+---------+ | 启用名字| | +----------------------------------------------+---------+ | 等待/同步/互斥/ innodb / clone_snapshot_mutex没有| | |等待/同步/互斥/ innodb / clone_sys_mutex没有| | |等待/同步/互斥/ innodb / clone_task_mutex没有| | |等待/ io /文件/ innodb / innodb_clone_file |是| |阶段/ innodb /克隆(文件副本)|是| |阶段/ innodb /克隆(重做副本)|是| |阶段/ innodb /克隆(复制页)|是| |声明/文摘/克隆|是| |声明/克隆/当地|是| |声明/克隆/客户端|是| |声明/克隆/服务器|是| |内存/ innodb /克隆|是| |内存/克隆/数据|是的 | +----------------------------------------------+---------+
等工具
性能模式等待工具跟踪需要时间的事件。克隆等待事件工具包括:
等待/同步/ / innodb / clone_snapshot_mutex互斥
:跟踪克隆快照互斥锁的等待事件,互斥锁在多个克隆线程之间同步对动态快照对象(在捐赠者和接收者上)的访问。等待/同步/ / innodb / clone_sys_mutex互斥
:跟踪克隆sys互斥锁的等待事件。在MySQL服务器实例中有一个克隆系统对象。这个互斥锁同步对施主端和受主端克隆系统对象的访问。它是由克隆线程和其他前台和后台线程获得的。等待/同步/ / innodb / clone_task_mutex互斥
:跟踪克隆任务互斥锁的等待事件,用于克隆任务管理。的clone_task_mutex
由克隆线程获取。等待/ io /文件/ innodb / innodb_clone_file
:跟踪克隆操作的文件的所有I/O等待操作。
有关监控的信息InnoDB
互斥锁等着看第15.16.2节“使用性能模式监视InnoDB互斥锁等待”.有关监视等待事件的一般信息,请参见第27.12.4节,“性能模式等待事件表”.
阶段仪器
性能模式阶段事件跟踪语句执行过程中发生的步骤。克隆舞台事件仪器包括:
复制innodb文件
:表示克隆操作的文件拷贝阶段进度。执行/innodb/clone(重做拷贝)
:表示克隆操作的重做复制阶段的进度。复制/复制页面
:表示克隆操作的页面复制阶段的进度。
有关使用阶段事件监视克隆操作的信息,请参见使用性能模式阶段事件监视克隆操作.有关监视阶段事件的一般信息,请参见第27.12.5节“性能方案阶段事件表”.
声明仪器
性能架构语句事件跟踪语句的执行。当克隆操作启动时,由克隆语句工具跟踪的不同语句类型可以并行执行。您可以在Performance Schema语句事件表中观察这些语句事件。所执行的语句的数量取决于clone_max_concurrency
而且clone_autotune_concurrency
设置。
克隆语句事件工具包括:
有关监视性能架构语句事件的信息,请参见第27.12.6节“性能模式声明事件表”.
记忆工具
性能模式内存工具跟踪内存使用情况。克隆内存使用工具包括:
内存/ innodb /克隆
:跟踪分配的内存InnoDB
对于动态快照。内存/克隆/数据
:跟踪克隆插件在执行克隆操作时分配的内存。
有关使用性能架构监视内存使用情况的信息,请参见第27.12.20.10节“内存汇总表”.