Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  Remote Cloning Operation Failure Handling

7.6.7.9 远程克隆操作失败处理

本节描述了远程克隆操作的不同阶段中的故障处理。

  1. 先验条件被检查(见远程克隆先验条件)。

    • CLONE INSTANCE 操作报告错误,如果在先验条件检查中出现故障。

  2. 如果捐赠服务器上有并发DDL操作,且clone_block_ddl 变量设置为 ON(默认设置为OFF),则捐赠服务器上的并发DDL操作被阻塞。见第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变量在捐赠实例上定义的时间内恢复。如果操作在指定时间内不能恢复,会中止并返回错误,捐赠实例将删除快照。设置为零时,捐赠实例立即删除快照。当网络错误发生时,配置更长的超时允许更多时间来解决网络问题,但也增加了捐赠实例的delta大小,从而增加克隆恢复时间和副本延迟。

克隆空闲超时设置为默认wait_timeout设置,值为28800秒(8小时)。