Documentation Home
MySQL 外壳 8.0  / 第 7 章 MySQL InnoDB 集群  / 7.4 部署生产 InnoDB 集群  /  7.4.6 将 MySQL 克隆与 InnoDB 集群一起使用

7.4.6 将 MySQL 克隆与 InnoDB 集群一起使用

在 MySQL 8.0.17 中,InnoDB Cluster 集成了 MySQL Clone 插件以提供加入实例的自动配置。检索集群数据以便实例可以与集群同步的过程称为分布式恢复。当一个实例需要恢复集群的事务时,我们区分 donor和receiver,donor 是提供数据的集群实例,这是从捐赠者那里接收数据的实例。在之前的版本中,Group Replication只提供了异步复制来恢复加入实例与集群同步所需的事务,以便加入集群。对于具有大量先前处理过的事务的集群,新实例在能够加入集群之前可能需要很长时间才能恢复所有事务。或者一个已经清除了 GTID 的集群,例如作为定期维护的一部分,可能会丢失一些恢复新实例所需的事务。在这种情况下,唯一的选择是使用 MySQL Enterprise Backup 等工具手动配置实例,如 将 MySQL Enterprise Backup 与 Group Replication 结合使用

MySQL Clone 为实例提供了一种替代方法来恢复与集群同步所需的事务。MySQL Clone 不是依靠异步复制来恢复事务,而是在捐赠者实例上拍摄数据快照,然后将快照传输到接收者。

警告

在克隆操作期间,接收器中的所有先前数据都将被销毁。但是,保留所有未存储在表中的 MySQL 设置。

一旦克隆操作将快照传输到接收方,如果集群在传输快照时处理了事务,则使用异步复制来恢复接收方与集群同步所需的任何数据。这比实例使用异步复制恢复所有事务要高效得多,并且避免了由清除 GTID 引起的任何问题,使您能够快速为 InnoDB Cluster 提供新实例。有关详细信息,请参阅 克隆插件分布式恢复的克隆

与使用 MySQL Clone 相比,增量恢复是加入集群的实例仅使用异步复制从集群中恢复实例的过程。当 InnoDB 集群配置为使用 MySQL 克隆时,加入集群的实例使用 MySQL 克隆或增量恢复来恢复集群的事务。默认情况下,集群会自动选择最合适的方法,但您可以选择配置此行为,例如强制克隆,它会替换加入实例已处理的任何事务。当您在交互模式下使用 MySQL Shell 时,默认情况下,如果集群不确定它是否可以继续恢复,它会提供一个交互提示。

此外, Cluster.status() for members in RECOVERINGstate 的输出包括恢复进度信息,使您能够轻松监控恢复操作,无论它们是使用 MySQL Clone 还是增量恢复。InnoDB Cluster 在 的输出中提供了有关使用 MySQL Clone 的实例的附加信息 Cluster.status()