你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将 Azure Cosmos DB NoSQL 帐户重新定位到另一个区域

你可能希望将现有 Azure 资源从一个区域移到另一个区域的原因有多种。 您可能想要:

  • 利用新的 Azure 区域。
  • 部署仅在特定区域中可用的功能或服务。
  • 满足内部策略和治理要求。
  • 与公司合并和收购保持一致
  • 满足容量规划要求。

本文介绍如何选择以下方法:

  • 重新定位 Azure Cosmos DB 中复制数据的区域。
  • 将帐户(Azure 资源管理器)元数据和数据从一个区域迁移到另一个区域。

先决条件

  • 必须使用对源和目标资源组实例的委托权限和“User.ReadBasic.All”的“API 权限”创建应用注册。
  • 所选 Cosmos DB API 必须在源到目标之间保持一致。 本文档使用 SQL DB API。
  • 帐户名称必须限制为 44 个字符,全部小写。
  • 当你在 Azure Cosmos 帐户中添加或删除位置时,无法同时修改其他属性。
  • 标识所有 Cosmos DB 依赖资源。

服务终结点注意事项

Azure Cosmos DB 的虚拟网络服务终结点限制对指定虚拟网络的访问。 终结点还可以限制对 IPv4(Internet 协议版本 4)地址范围列表的访问。 从这些源外部连接到事件中心的任何用户都被拒绝访问。 如果在事件中心资源的源区域中配置了服务端点,则需要在目标区域中进行相同配置。

若要成功将 Azure Cosmos DB 重新创建到目标区域,必须事先创建 VNet 和子网。 如果使用 Azure 资源移动器工具移动这两个资源,则不会自动配置服务终结点。 因此,需要手动配置它们,这可以通过 Azure 门户Azure CLIAzure PowerShell 完成。

在没有数据的情况下重新部署

对于需要单独重新定位 Cosmos DB 实例而不使用配置和客户数据的情况,可以使用 Microsoft.DocumentDB databaseAccounts 创建实例本身

使用数据重新部署

Azure Cosmos DB 支持本机数据复制,因此将数据从一个区域移到另一个区域非常简单。 可以使用 Azure 门户、Azure PowerShell 或 Azure CLI 来完成此作。 它涉及以下步骤:

  1. 向帐户添加新区域。

    若要向 Azure Cosmos DB 帐户添加新区域,请参阅 向 Azure Cosmos DB 帐户添加/删除区域

  2. 执行到新区域的手动故障转移。

    如果要移除的区域目前是帐户的写入区域,你需要启动向上一步骤中添加的新区域的故障转移。 这是零停机时间操作。 如果要在多区域帐户中移动读取区域,则可以跳过此步骤。

    若要启动故障转移,请参阅 在 Azure Cosmos DB 帐户上执行手动故障转移

  3. 删除原始区域。

    若要从 Azure Cosmos DB 帐户中删除区域,请参阅 从 Azure Cosmos DB 帐户添加/删除区域

注释

如果在 异步吞吐量扩展操作 正在进行时执行故障转移操作或添加/删除新区域,吞吐量扩展操作将暂停。 故障转移或添加/移除区域操作完成后,它会自动继续。

重新部署 Azure Cosmos DB 帐户元数据

Azure Cosmos DB 本身不支持将帐户元数据从一个区域迁移到另一个区域。 若要将帐户元数据和客户数据从一个区域迁移到另一个区域,必须在所需区域中创建新帐户,然后手动复制数据。

重要

如果数据存储或移动到其他区域,则无需迁移帐户元数据。 帐户元数据所在的区域不会影响 Azure Cosmos DB 帐户的性能、安全性或任何其他作方面。

要想几乎不停机地进行 API for NoSQL 迁移,需要使用更改源或一个使用它的工具。

以下步骤演示如何将 API for NoSQL 的 Azure Cosmos DB 帐户及其数据从一个区域迁移到另一个区域:

  1. 在所需区域中创建新的 Azure Cosmos DB 帐户。

    若要通过 Azure 门户、PowerShell 或 Azure CLI 创建新帐户,请参阅 “创建 Azure Cosmos DB 帐户”。

  2. 创建新的数据库和容器。

    若要创建新的数据库和容器,请参阅 “创建 Azure Cosmos DB 容器”。

  3. 使用 Azure Cosmos DB Spark 连接器的实时迁移示例来迁移数据。

    若要在几乎零停机的情况下迁移数据,请参阅 使用 Spark 连接器实时迁移 Azure Cosmos DB SQL API 容器数据

  4. 更新应用程序连接字符串。

    在实时数据迁移示例仍在运行中,更新应用程序的新部署中的连接信息。 可以从 Azure 门户检索应用程序的终结点和密钥。

    Azure 门户中的访问控制,演示 NoSQL 数据库安全性。

  5. 将请求重定向到新应用程序。

    将新应用程序连接到 Azure Cosmos DB 后,可以将客户端请求重定向到新的部署。

  6. 删除不再需要的任何资源。

    现在,如果请求完全重定向到新实例,可以删除旧的 Azure Cosmos DB 帐户并停止实时数据迁移器示例。

后续步骤

有关如何管理 Azure Cosmos DB 帐户以及数据库和容器的详细信息和示例,请阅读以下文章: