从 Azure Cosmos DB for MongoDB 迁移到 Azure DocumentDB

重要

你是否正在寻找一种数据库解决方案,以应对需要高扩展性、99.999% 可用性服务级别协议(SLA)、即时自动扩展和跨多个区域的自动故障转移的场景? 请考虑使用 Azure Cosmos DB for NoSQL

使用本指南,您可以使用内置于服务和 Azure 门户的工具,将现有的集合从 Azure Cosmos DB for MongoDB 迁移到 Azure Cosmos DB。

先决条件

设置 Azure Key Vault

首先,需要配置源 Azure Cosmos DB for MongoDB 帐户,以将目标 Azure DocumentDB 群集的本机身份验证凭据存储在现有密钥保管库中。

  1. 登录到 Azure 门户 (https://portal.azure.cn)。

  2. 进入您的 Azure Cosmos DB for MongoDB 帐户。

  3. 在源帐户中,导航到 “设置 > 标识”。

  4. 通过将“状态”选项设置为“打开”,为源帐户启用系统分配的托管标识。 记下本指南稍后要使用的 对象(主体)ID 的值。

    Azure 门户标识设置页的屏幕截图,其中显示了系统分配的托管标识配置选项。

    小窍门

    如果改用用户分配的托管标识,请确保至少将一个用户分配的托管标识分配给源帐户。

  5. 导航到现有的密钥保管库。

  6. 如果 Key Vault 使用 Role-Based 访问控制(RBAC) 权限模型,请在资源菜单中选择 访问控制(IAM) 选项,并将 Key Vault 机密用户 角色分配给用于源帐户的托管标识的主体 ID(对象 ID)。 否则,请使用资源菜单中的 “访问策略 ”选项创建具有 “获取列出机密 ”权限的访问策略,然后将其分配给主体 ID(对象 ID)。

  7. 运行命令更新源帐户,并将首选标识机制设置为默认标识。

    az cosmosdb update \
        --resource-group "<resource-group-name>" \
        --name "<source-account-name>" \
        --default-identity "SystemAssignedIdentity"
    

    小窍门

    如果改用用户分配的托管标识,请运行以下命令:

    az cosmosdb update \
        --resource-group "<resource-group-name>" \
        --name "<source-account-name>" \
        --default-identity "UserAssignedIdentity=<fully-qualified-resource-id-of-user-assigned-managed-identity>"
    
  8. 返回到密钥保管库,导航到 “对象 > 机密”。

  9. 然后选择“ 生成/导入 ”以创建新机密。 将以下值用于机密:

    Description
    名称 机密名称用于标识机密,只能包含字母数字字符和短划线。 此值最终在迁移作业的 “机密名称 ”字段中使用。
    机密值 在此处粘贴 Azure Cosmos DB for MongoDB 目标群集的本机身份验证凭据。
  10. 在新创建的机密中,获取 保管库 URI 的值。 此值最终在迁移作业的 保管库 URI 字段中使用。

创建迁移作业

首先,使用开始将数据迁移到目标群集所需的配置创建迁移作业。

  1. 登录到 Azure 门户 (https://portal.azure.cn)。

  2. 请重新访问您的 Azure Cosmos DB for MongoDB 帐户。

  3. 在帐户页上,从资源菜单中选择 “迁移到 DocumentDB ”。

    迁移到 DocumentDB 工作流中的主页的屏幕截图。

  4. 选择“ 启动新的迁移作业”。

选择迁移模式

“选择迁移模式”部分用于提供最适合迁移需求的迁移模式。

  1. 从以下选项中选择适当的模式:

    Description
    离线 脱机迁移在开始时捕获集合的快照,这种方法更简单且可预测。 在允许使用集合的静态副本且实时更新非必要时,它可以很好地运行。 将此选项用于非生产迁移。
    在线 在线迁移会复制集合数据,确保在此过程中也会复制更新。 此方法的优势在于停机时间最小,确保持续运行以实现业务连续性。 如果正在进行的操作至关重要,需要优先考虑减少停机时间,则可以使用此选项。

    迁移作业的模式选择选项的屏幕截图。

    注释

    连续备份是联机迁移的先决条件。 有关详细信息,请参阅 连续备份

  2. 选择“下一步”。

配置目标迁移凭据

“选择目标帐户”部分用于提供目标 Azure DocumentDB 群集的连接详细信息。 作为安全最佳做法,我们建议将本机身份验证凭据存储在 Azure Key Vault 中。

注释

目前不支持使用 Microsoft Entra ID 身份验证的连接字符串。

  1. 保管库 URI机密名称 字段设置为本指南前面记录的值。

    目标选择部分的屏幕截图。

  2. 选择“下一步”。

更新目标防火墙

更新目标防火墙 ”部分用于确保目标 Azure DocumentDB 群集的防火墙不会阻止迁移作业请求。

  1. 观察此步骤中的 IP 地址

    目标防火墙检查部分和源帐户 IP 地址的屏幕截图。

  2. 使用其他浏览器窗口或选项卡导航到目标 Azure DocumentDB 群集。

  3. 在资源菜单的“设置”部分选择“网络”。

  4. 添加规则以允许访问迁移作业的 IP 地址。 有关详细信息,请参阅 管理群集级防火墙规则

  5. 使用迁移作业配置步骤导航回浏览器窗口或选项卡。

  6. 选择“下一步”。

注释

如果在 Azure Key Vault 上启用了网络安全,请确保也会将相同的 IP 添加到 Azure Key Vault 防火墙

配置和启动作业

使用 “选择集合 ”和 “确认和提交 ”部分完成作业的配置。

  1. “选择集合” 部分选择要迁移的集合。

    用于选择要迁移的集合的分区的屏幕截图。

  2. 选择“下一步”。

  3. 查看作业配置并提供唯一的作业名称。

    重要

    1. 迁移作业不会将索引传输到目标集合。 在继续作之前,请使用此示例 迁移脚本 在目标集合上创建索引。 索引准备就绪后,请选中该复选框。
    2. 迁移作业不支持更改分片键。 如果需要不同的分片键,请将数据迁移为未分片集合。 迁移完成后,使用所需的分片键对目标上的集合进行分片。
  4. 选择 “提交 ”以创建并启动作业。

监视迁移作业

提交任务后,您可以监视新创建任务的状态以及其他挂起或已完成的任务。

  1. 进入您的 Azure Cosmos DB for MongoDB 帐户。

  2. 在帐户页上,从资源菜单中选择 “迁移到 DocumentDB ”。

  3. 选择“监视现有迁移作业”

    可以监视或修改现有迁移作业的页面的屏幕截图。

  4. 列出为当前源帐户创建的所有迁移作业。

  5. (可选)若要更改作业的状态,请选择与特定作业对应的上下文菜单(..)。 选项包括:

    选项 Description
    暂停 暂时暂停当前正在运行的作业
    简历 恢复暂停的作业
    取消 永久取消当前正在运行的作业
    直接转换 在确认源和目标完成同步后完成迁移

    注释

    切换选项仅适用于联机迁移。 切换完成后,源帐户与目标群集之间的同步将结束。 执行切换后,应更新客户端应用程序中的凭据以切换到新的 Azure DocumentDB 群集。