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

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

了解亚马逊 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 副本提升为主实例要比创建新的主实例快得多。