将 Azure Cosmos DB for NoSQL 迁移到可用性区域支持

本指南介绍如何将 Azure Cosmos DB for NoSQL 从非可用性区域支持迁移到可用性区域支持。

在 Azure Cosmos DB 中使用可用性区域不会对性能或延迟造成明显影响。 它不需要对所选的一致性模式进行任何调整,也不需要对应用程序代码进行任何修改。

启用可用性区域后,Azure Cosmos DB 会智能地将数据的四个副本分布到所有可用性区域中。 这可以确保在一个可用性区域发生中断时,帐户仍可完全正常地运行。 相反,如果没有可用性区域,所有副本将位于单个可用性区域中(我们不会公开哪个可用性区域),如果该特定区域遇到问题,则可能会导致停机。

启用可用性区域是提高 Cosmos DB 数据库复原能力的好办法,而且不会导致应用程序复杂性提高、影响性能,甚至在使用自动缩放时不会产生额外成本。

先决条件

  • 无服务器帐户可以使用可用性区域,但此选项仅在帐户创建期间可用。 没有可用性区域的现有帐户无法转换为可用性区域配置。 对于任务关键型工作负载,建议选择预配吞吐量。

  • 请记住,启用可用性区域并非帐户范围的选择。 单个 Cosmos DB 帐户可以跨越任意数量的 Azure 区域,每个区域可以独立配置为利用可用性区域,并且某些区域对可能不支持可用性区域。 这一点很重要,因为某些区域尚不支持可用性区域,但将其添加到 Cosmos DB 帐户不会阻止在为该帐户配置的其他区域中启用可用性区域。 计费模型也体现了这种可能性。 有关 Cosmos DB SLA 的详细信息,请参阅 Cosmos DB for NoSQL 中的可靠性。 若要查看哪些地区支持可用性区域,请参阅支持可用性区域的 Azure 区域

停机要求

在迁移到可用性区域支持的过程中,在添加和删除次要区域时会出现短时间(几秒钟)的写入不可用错误,因为系统会故意停止写入来检查区域之间的一致性。

迁移

由于无法在已添加到帐户的区域中启用可用性区域,因此需要删除该区域并在启用可用性区域的情况下再次添加它。 为了避免任何服务中断,需要添加并故障转移到临时区域,直到可用性区域配置完成。

按照以下步骤在选定区域中为帐户启用可用性区域。

  1. 按照将区域添加到数据库帐户中的步骤,将临时区域添加到数据库帐户。

  2. 如果你的 Azure Cosmos DB 帐户配置了多区域写入,请跳到下一步。 否则,请按照对 Azure Cosmos DB 帐户执行手动故障转移中的步骤手动故障转移到临时区域。

  3. 按照删除数据库帐户的区域中的步骤删除你要为其启用可用性区域的区域。

  4. 添加回要启用可用性区域的区域:

    1. 将区域添加到数据库帐户
    2. 在“写入区域”列中找到新添加的区域,然后为该区域启用“可用性区域”
    3. 选择“保存”。
  5. 按照对 Azure Cosmos DB 帐户执行手动故障转移中的步骤故障回复到启用了可用性区域的区域。

  6. 按照删除数据库帐户的区域中的步骤删除临时区域。