Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

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

7.6.7.9 远程克隆操作失败处理

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

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

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

  2. 只有当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. 服务器将自动重新启动(适用于不克隆到命名目录的远程克隆操作)。在启动期间,将执行典型的服务器启动任务。

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

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

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