提升副本以实现区域性迁移或灾难恢复

本页面介绍如何使用和升级跨区域副本(也就是在不同于主实例所在区域的区域中创建的副本)进行区域迁移或灾难恢复。

概览

提升跨区域副本有两个常见场景:

  • 区域迁移:执行计划迁移过程以将数据库迁移到不同区域。
  • 灾难恢复:在主要实例的区域不可用的情况下,通过故障转移技术将实例转移到其他区域。

这两种使用场景都需要设置跨区域复制功能,然后提升副本。它们之间的主要区别在于副本升级的是计划升级(针对区域迁移)还是非计划升级(由于主实例已经变得不可用,需要通过故障转移技术来转移到副本区域)。

区域迁移

您可以使用跨区域副本将数据库迁移到其他区域,并将停机时间缩至最短。总体思路是在其他区域中创建副本,等待副本完成同步,升级副本,然后将客户端定向到新升级的实例。

升级所涉及的步骤与升级区域副本相同;按照这些说明操作,确保新升级的实例包含提交到原始主实例的所有事务。升级副本并验证新升级的实例是否正常运行后,更新所有数据库客户端即可连接到新实例。

灾难恢复

跨区域副本可以在灾难恢复过程中使用。如果主实例的区域长时间不可用,您可以升级跨区域副本以通过故障转移技术转移到其他区域。

验证切换条件

如果主实例不可用,您可以在监控信息中心中检查复制延迟时间,确定其是否满足您的转换条件。

检查 Replica Lag 值(以秒为单位)。如果主实例所在区域发生区域性服务中断,则 MySQL 的 Replica Lag 指标会指示实例的数据复制延迟时间,并且该指标应该会逐渐减小。

提升读取副本

确定满足切换条件后,您可以将其中一个副本升级为可写的独立实例。请考虑以下场景:

  • 区域 A (us-central1) 具有一个高可用性主实例 (db-a-0)
  • 区域 B (us-west1) 具有 db-a-0 的跨区域副本 (db-b-1)
  • 区域 C (us-east1) 具有 db-a-0 的跨区域副本 (db-c-1)

您可以选择将区域 B 中的 db-b-1 副本提升为独立的可写实例。

如需了解详细说明,请参阅提升副本

为提升的实例启用备份和高可用性

读取副本不会自动使用备份进行配置,也不会在升级时配置为高可用性 (HA) 实例。您可以在升级副本后启用这些功能,就像处理任何非副本实例一样。

重新创建其他副本

将副本升级为主实例后,您需要重新创建上述主实例的任何其他副本。例如,请考虑上文中提到的配置,下面再重复一遍:

  • 区域 A (us-central1) 具有一个高可用性主实例 (db-a-0)
  • 区域 B (us-west1) 具有 db-a-0 的跨区域副本 (db-b-1)
  • 区域 C (us-east1) 具有 db-a-0 的跨区域副本 (db-c-1)

如果主实例 (db-a-0) 不再可用,您可以将区域 B 中的副本提升为主实例。如需再次向区域 A 和 C 中添加额外的副本,请删除旧实例(A 中之前的主实例和 C 中的副本),然后根据 B 中的新主实例创建新的读取副本

生成的配置将如下所示:

  • 区域 A (us-central1) 现在具有一个跨区域副本 (db-a-1)
  • 区域 B (us-west1) 现在具有主实例 (db-b-1)
  • 区域 C (us-east1) 现在具有一个新的跨区域副本 (db-c-2)