了解 Amazon DocumentDB 集群容错能力 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

了解 Amazon DocumentDB 集群容错能力

Amazon DocumentDB 集群设计为具有容错能力。每个群集的卷在单个中跨越多个可用区Amazon Web Services 区域,每个可用区均包含一个集群卷数据副本。此功能意味着您的集群可容忍可用区故障,而不发生任何数据丢失,只是会短暂中断服务。

如果集群中的主实例失败,Amazon DocumentDB 会通过两种方式之一来自动执行故障转移到新的主实例:

  • 通过将现有 Amazon DocumentDB 副本提升为根据每个副本的提升层设置选择的新主实例,然后创建前主实例的替换项。对副本实例的故障转移通常只需不到 30 秒。在此期间,读取和写入操作可能会短暂中断。要提高集群的可用性,建议您在两个或更多的不同可用区中创建至少一个或多个 Amazon DocumentDB 副本。

  • 创建新的主实例。只有在集群中没有副本实例并且可能需要几分钟才能完成时,才会发生这种情况。

如果集群具有一个或多个 Amazon DocumentDB 副本,则 Amazon DocumentDB 副本将在故障事件期间被提升为主实例。故障事件将导致短暂中断,其间的读取和写入操作将失败并引发异常。不过,服务通常会在 120 秒内 (经常在 60 秒内) 还原。要提高集群的可用性,建议您在两个或更多的不同可用区中创建至少一个或多个 Amazon DocumentDB 副本。

您可以通过为每个副本分配一个优先级来自定义发生故障后将 Amazon DocumentDB 副本提升为主实例的顺序。优先级介于 0(最高优先级)和 15(最低优先级)之间。如果主实例失败,则会将具有最高优先级的 Amazon DocumentDB 副本提升为新的主实例。您可以随时修改 Amazon DocumentDB 副本的优先级。修改优先级不会触发故障转移。您可以对 modify-db-instance 操作使用 --promotion-tier 参数。有关自定义实例的故障转移优先级的更多信息,请参阅Amazon DocumentDB 故障转移

多个 Amazon DocumentDB 副本可具有相同优先级,这会产生多个提升层。如果两个或更多 Amazon DocumentDB 副本具有同一优先级,则最大的副本将被提升为主实例。如果两个或更多 Amazon DocumentDB 副本具有同一优先级和大小,则将提升同一提升层中的任意副本。

如果集群不包含任何 Amazon DocumentDB 副本,则会在失败事件期间重新创建主实例。故障事件将导致中断,其间的读取和写入操作将失败并引发异常。创建新的主实例时将还原服务,该操作所需的时间通常在 10 分钟内。将 Amazon DocumentDB 副本提升为主实例要比创建新的主实例快得多。