你当前正在访问 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 CLI 或 Azure PowerShell 来完成。
在没有数据的情况下重新部署
对于需要在没有配置和客户数据的情况下单独重定位 Cosmos DB 实例的情况,可以使用 Microsoft.DocumentDB databaseAccounts 创建实例本身
在具有数据的情况下重新部署
Azure Cosmos DB 本身支持数据复制,因此,将数据从一个区域移到另一个区域非常简单。 可以使用 Azure 门户、Azure PowerShell 或 Azure CLI 来完成此操作。 它涉及以下步骤:
将新区域添加到帐户。
若要将新区域添加到 Azure Cosmos DB 帐户,请参阅在 Azure Cosmos DB 帐户中添加/删除区域。
执行到新区域的手动故障转移。
当要删除的区域当前为帐户的写入区域时,你需要故障转移到上一步骤中添加的新区域。 此操作不需要停机。 如果要移动多区域帐户中的读取区域,则可以跳过此步骤。
若要启动故障转移,请参阅在 Azure Cosmos DB 帐户上执行手动故障转移。
删除原始区域。
若要从 Azure Cosmos DB 帐户中删除区域,请参阅在 Azure Cosmos DB 帐户中添加/删除区域。
注意
如果在异步吞吐量缩放操作正在进行时执行故障转移操作或添加/删除新区域,则会暂停吞吐量纵向扩展操作。 故障转移或添加/删除区域操作完成后,它会自动继续。
重新部署 Azure Cosmos DB 帐户元数据
Azure Cosmos DB 本身不支持将帐户元数据从一个区域迁移到另一个区域。 若要同时将帐户元数据和客户数据从一个区域迁移到另一个区域,必须在所需的区域中创建新帐户,然后手动复制数据。
重要
如果数据存储或移动到另一区域,则不需要迁移帐户元数据。 帐户元数据所在的区域不会影响 Azure Cosmos DB 帐户的性能、安全性或任何其他操作方面。
要想几乎不停机地进行 API for NoSQL 迁移,需要使用更改源或一个使用它的工具。
以下步骤演示了如何将 API for NoSQL 的 Azure Cosmos DB 帐户及其数据从一个区域迁移到另一个区域:
在所需区域中创建新的 Azure Cosmos DB 帐户。
若要通过 Azure 门户、PowerShell 或 Azure CLI 创建新帐户,请参阅创建 Azure Cosmos DB 帐户。
创建新的数据库和容器。
若要创建新的数据库和容器,请参阅创建 Azure Cosmos DB 容器。
使用 Azure Cosmos DB Spark 连接器实时迁移示例迁移数据。
若要在几乎不停机的情况下迁移数据,请参阅使用 Spark 连接器实时迁移 Azure Cosmos DB SQL API 容器数据。
更新应用程序连接字符串。
当实时数据迁移示例仍在运行时,在应用程序的新部署中更新连接信息。 你可以从 Azure 门户检索应用程序的终结点和密钥。
将请求重定向到新应用程序。
在新应用程序连接到 Azure Cosmos DB 后,可以将客户端请求重定向到新部署。
删除不再需要的任何资源。
现在,请求已完全重定向到新实例,你可以删除旧的 Azure Cosmos DB 帐户并停止实时数据迁移示例。
后续步骤
有关如何管理 Azure Cosmos DB 帐户以及数据库和容器的详细信息和示例,请阅读以下文章: