文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  远程克隆操作失败处理

7.6.7.9 远程克隆操作失败处理

本节介绍克隆操作不同阶段的失败处理。

  1. 检查先决条件(请参见 远程克隆先决条件)。

    • 如果在先决条件检查期间发生故障,CLONE INSTANCE 操作将报告错误。

  2. 仅当 clone_block_ddl 变量设置为 ON 时,才会阻塞供体上的并发 DDL(默认设置为 OFF)。请参见 第 7.6.7.4 节,“克隆和并发 DDL”

    如果克隆操作无法在 clone_ddl_timeout 变量指定的时间限制内获得 DDL 锁,则会报告错误。

  3. 在将数据克隆到接收方数据目录之前,将删除接收方上用户创建的数据(架构、表、表空间)和二进制日志。

    在远程克隆操作期间从接收方数据目录中删除用户创建的数据和二进制日志时,不会保存数据,如果发生故障,数据可能会丢失。如果数据很重要,则应在启动远程克隆操作之前进行备份。

    出于信息目的,将向服务器错误日志打印警告,以指定何时开始和完成数据删除。

    [Warning] [MY-013453] [InnoDB] Clone removing all user data for provisioning:
    Started...
    
    [Warning] [MY-013453] [InnoDB] Clone removing all user data for provisioning:
    Finished

    如果在删除数据时发生故障,接收方可能会保留克隆操作之前存在的一组部分架构、表和表空间。在克隆操作执行的任何时间或故障之后,服务器始终处于一致状态。

  4. 从供体克隆数据。用户创建的数据、字典元数据和其他系统数据将被克隆。

    如果在克隆数据时发生故障,克隆操作将回滚,所有克隆的数据都将被删除。在此阶段,接收方上先前存在用户创建的数据和二进制日志也将被删除。

    如果出现这种情况,您可以纠正故障原因并重新执行克隆操作,或者放弃克隆操作并从克隆操作之前拍摄的备份中恢复接收方数据。

  5. 服务器会自动重新启动(适用于不克隆到命名目录的远程克隆操作)。在启动过程中,将执行典型的服务器启动任务。

    如果自动服务器重启失败,您可以手动重启服务器以完成克隆操作。

如果在克隆操作期间发生网络错误,如果错误在供体实例上定义的 clone_donor_timeout_after_network_failure 变量指定的时间内解决,则操作将恢复。 clone_donor_timeout_after_network_failure 的默认设置为 5 分钟,但支持 0 到 30 分钟的范围。如果操作未在指定时间内恢复,则会中止并返回错误,并且供体将删除快照。设置为零会导致供体在发生网络错误时立即删除快照。配置更长的超时允许更多时间来解决网络问题,但也增加了供体实例上的增量大小,这将增加克隆恢复时间以及在克隆用作副本或复制组成员的情况下的复制延迟。

Clone 空闲超时设置为默认 wait_timeout 设置,即 28800 秒(8 小时)。