灾难恢复和 Amazon DocumentDB 全局集群 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

灾难恢复和 Amazon DocumentDB 全局集群

通过使用全局集群,您可以快速从区域故障等灾难中恢复。灾难恢复通常以 RTO 和 RPO 的值来衡量。

  • 恢复时间目标 (RTO) – 灾难后系统恢复工作状态所需的时间。换言之,RTO 用于衡量停机时间。对于全局集群,RTO 大约为数分钟。

  • 恢复点目标 (RPO) – 可能丢失的数据量(按时间衡量)。对于全局集群,RPO 通常以秒为单位进行测量。

  • 要从计划外停机中恢复,您可以执行跨区域故障转移到全局集群中的一个辅助区域。当全局集群有多个辅助区域时,如果主 Amazon Web Services 区域 发生中断,请确保分离所有辅助区域。然后,您将其中一个辅助区域提升为新的主 Amazon Web Services 区域。最后,在其他每个辅助区域中创建新的集群,并将这些集群附加到全局集群。

  • 将辅助集群提升为主集群时,还需要更新应用程序用于连接到全局集群的端点。要从新提升的集群获取新的写入器端点,可以通过从端点字符串中删除 -ro 来转换以前的读取器端点。例如,如果以前的读取器端点为 global-16rr-test-cluster-1.cluster-ro-12345678901.us-west-2.docdb.amazonaws.com,则新提升的写入器端点为 global-16rr-test-cluster-1.cluster-cps2igpwyrwa.us-west-2.rds.amazonaws.com

Amazon DocumentDB 全局集群的失效转移

如果一个 Amazon Web Services 区域 中的整个集群变得不可用,则可以提升全局集群中的另一个集群,使之具有读/写功能。

如果另一个 Amazon Web Services 区域 中的集群成为主集群效果更好,您可以手动启用故障转移机制。例如,您可以提高其中一个辅助集群的容量,然后将其提升成为主集群。或者 Amazon Web Services 区域 间的活动平衡可能发生变化,这样,将主集群切换到另一个 Amazon Web Services 区域 可能会对写入操作带来较低延迟。

以下过程概述了如何在 DocumentDB 全局集群中提升其中一个辅助集群。

提升辅助集群

  1. 停止向停机的 Amazon Web Services 区域 中的主集群发出 DML 语句和其他写入操作。

  2. 从辅助 Amazon Web Services 区域 中标识作为新的主集群的集群。如果您的主集群中有两个(或更多)辅助 Amazon Web Services 区域,请选择滞后时间最短的辅助集群。

  3. 从全局集群分离您所选的辅助集群。

    从全局集群删除辅助集群会立即停止从主集群到该辅助集群的复制过程,并会将其提升为拥有完全读/写功能的独立预置的集群。与该停机区域中的主集群关联的任何其他辅助集群仍然可用,并且可以接受应用程序的调用。它们还会消耗资源。由于您要重新创建全局集群,为避免分裂大脑和其他问题,请先删除其他辅助集群,再在后续步骤中创建新的全局集群。

    有关分离的详细步骤,请参阅 从 Amazon DocumentDB 全局集群中删除某集群

  4. 重新配置应用程序,使用新的端点将所有写入操作发送到现在的独立 集群。如果您在创建全局集群时接受了提供的名称,则可以在应用程序中从集群的端点字符串中删除 -ro 以更改端点。

    例如,当辅助集群与全局集群分离时,辅助集群的端点 my-global.cluster-ro-aaaaaabbbbbb.us-west-1.docdb.amazonaws.com 将变为 my-global.cluster-aaaaaabbbbbb.us-west-1.docdb.amazonaws.com

    在下一步中,当您开始向集群添加区域时,该集群将成为新的全局数据库的主集群。

  5. 向集群添加 Amazon Web Services 区域。执行此操作后,从主数据库集群到辅助数据库集群的复制过程将会开始。

  6. 根据需要添加更多 Amazon Web Services 区域,以重新创建为了支持应用程序所需的拓扑。确保在做出这些更改之前、更改期间和更改之后,将应用程序写入内容发送到正确的集群,以避免全局集群中集群之间的数据不一致(大脑分裂问题)。

  7. 当停机问题已解决且您已准备好再次将原始 Amazon Web Services 区域 指定为主集群时,请按相反顺序执行相同步骤:

  8. 从全局集群移除其中一个辅助集群。这将使其能够提供读取/写入流量。

  9. 将所有写入流量重定向到原始 Amazon Web Services 区域 中的主集群。

  10. 添加 Amazon Web Services 区域,以便在与之前相同的 Amazon Web Services 区域 中设置一个或多个辅助集群。

Amazon Document DB 全局集群可以使用 Amazon 软件开发工具包进行管理,这使您能够针对灾难恢复和业务连续性规划用例创建解决方案来自动执行全局集群失效转移流程。其中一个解决方案已通过 Apache 2.0 许可提供给我们的客户,并且可以从我们的工具库中访问此处。该解决方案利用 Amazon Route53 进行端点管理,并提供可根据相应事件触发的 Amazon Lambda 函数。