Docs 菜单

Docs 主页入门指南

从 Compose 迁移到 MongoDB Atlas

本指南将引导您了解如何使用 Atlas 实时迁移流程将数据从 Compose 迁移到 MongoDB Atlas。

MongoDB Atlas 实时迁移服务可帮助您快速安全地将 MongoDB 数据库迁移到我们完全托管的云数据库 MongoDB Atlas。 它的工作原理是连接到现有的 MongoDB 数据库并将其与 Atlas 中运行的集群同步,同时您的应用程序继续正常运行。 两个集群之间的数据同步后,您只需更新应用程序中的数据库连接字符串即可切换到 Atlas 集群。

所需时间:20 分钟

重要

如果您在 Compose 部署中启用了 SSL,则需要访问 SSL 证书才能完成实时迁移过程。

在某些 Compose 部署中,您无法再在 Compose 用户界面中查看 SSL 证书。 如果您的部署属于这种情况,您有两个选择:

  • 直接联系 Compose 以请求 SSL 证书。

  • 使用 MongoMirror将数据迁移到 Atlas。

请参阅 Compose 文档 以了解有关 SSL 证书的更多信息。

  • 您的数据当前存储在 MongoDB 数据库中。

    本指南重点介绍如何从 Compose 上现有的 MongoDB 部署迁移到 Atlas。

  • 您当前的 MongoDB database 运行的是 MongoDB 2.6 或更高版本。

    Atlas 支持最新版本的 MongoDB: 4 。 2 、 4 。 4 、 5 。 0和6 。 0 。如果您运行的是 MongoDB 版本2 。 6或更高版本,Atlas Live Migration Service 可以将您的数据直接移动到较新的数据库版本中。更新MongoDB 驱动程序并在应用程序级别进行任何必要的代码更改,以确保兼容性。如果您运行的是早于2的版本。 6 ,请参阅将MongoDB 升级到2 。 6查看升级说明。

  • 当前部署是 MongoDB 副本集或分片集群。

    如果您的部署当前是独立实例,则必须首先将其转换为副本集。

    不支持从分片集群实时迁移数据。 目标集群可以是分片的,但源集群必须是未分片的副本集。

  • (可选)在源部署上启用身份验证。

    迁移过程要求在 AWS 中的源集群上启用身份验证。有关启用身份验证的说明,请参阅启用身份验证。您可以使用 mongosh命令验证源集群上是否已启用身份验证:

    mongosh <mongodb-connection-string> -u <mongodb-username> -p --authenticationDatabase admin
  • 用于执行迁移的源集群中的数据库用户具有所需的 MongoDB 角色。

    • readAnyDatabase角色。

    • clusterMonitor角色。

    • backup角色。

    要验证将运行实时迁移进程的数据库用户是否具有这些角色,请对admin数据库运行db.getUser()命令。

    use admin
    db.getUser("admin")
    {
    "_id" : "admin.admin",
    "user" : "admin",
    "db" : "admin",
    "roles" : [
    {
    "role" : "backup",
    "db" : "admin"
    },
    {
    "role" : "clusterMonitor",
    "db" : "admin"
    }
    {
    "role" : "readAnyDatabase",
    "db" : "admin"
    }
    ]
    } ...

    此外,Compose 中源集群的数据库用户必须具有读取admin数据库的 oplog 的角色。请参阅Oplog 访问。当您按照以下步骤在 Compose 中添加 oplog 用户时,您将获得对此角色的访问权限。如果您无法在 Compose 中向源集群的数据库用户授予所有这些权限,则实时迁移过程将无法进行。在这种情况下,请使用mongodump 和 mongorestore将数据迁移到 Atlas。

1

如果您还没有 Atlas 部署,请立即创建一个。您需要M10或更大的集群层才能执行实时迁移。

2

登录您的 Compose 帐户 并导航到要迁移到 Atlas 的部署。

注意

在迁移过程中,保持 Compose 部署控制台上的一个浏览器窗口和Atlas 控制台上的一个窗口打开会很有帮助。

3
1

单击左侧导航栏中的 Add-ons链接。 如果您没有Oplog Access插件,请使用Add按钮添加。

2

如果您已经安装了Oplog Access插件,请单击Configure查看 oplog 用户名和密码。

显示 oplog Access 插件中的 oplog 用户名和密码字段。
点击放大

要执行迁移过程,oplog 用户必须具有以下特权:

如果您无法向 oplog 用户授予这些权限,则实时迁移过程将无法进行。在这种情况下,请使用mongodump 和 mongorestore将数据迁移到 Atlas。

4

通读“实时迁移”对话框窗口中的迁移步骤概述,然后单击绿色的I'm ready to migrate按钮。

5
1
  • 用于上一步中的 Atlas 实时迁移进程对话框。

  • 用于 Compose 部署仪表盘。

2

在 Compose 部署仪表盘上,单击左侧导航中的Security链接。 Whitelist TCP/HTTP IPs部分显示允许访问 Compose 部署的 IP 地址范围列表。

3

添加 Atlas 迁移进程对话框窗口顶部列出的 IP 地址范围。

显示在 TCP/HTTP IP 白名单部分中输入的 IP 地址范围。
点击放大

注意

您的 Atlas 迁移 IP 地址范围可能与此处显示的不同。

6

将 Compose 部署的主机名和端口添加到“Atlas 实时迁移”对话框中。

Oplog Access附加组件页面上,您将找到一个连接字符串,其中包含用于 oplog 访问的主机名和端口。 将它们复制到“Atlas 实时迁移”对话框中。

显示填充有主机名和端口的字段。
7

在“Atlas 实时迁移”对话框窗口中输入oploguser的用户名和密码。

8

如果您没有在 Compose 部署中启用 TLS/SSL,请跳过此步骤。

重要

在某些 Compose 部署中,您无法再在 Compose 用户界面中查看 TLS/SSL 证书。 如果您的部署属于这种情况,您有两个选择:

  • 直接联系 Compose 以请求 TLS/SSL 证书。

  • 使用MongoMirror将数据迁移到 Atlas。

请参阅 Compose 文档 以了解有关 SSL 证书的更多信息。

Oplog Access附加组件页面上,您会找到一个 SSL 证书。 将其复制到“Atlas 实时迁移”对话框上的 CAFile 文本框中。

显示粘贴到 CAFile 文本框中的 SSL 证书。

注意

复制整个证书文件,包括BEGIN CERTIFICATEEND CERTIFICATE行。

9

单击Validate按钮,检查所有表单字段是否有效,以及集群是否已准备好迁移。 表单通过验证后,您就可以开始迁移了。

10

进度条中的倒计时器会显示目标集群准备好从源集群迁移数据的剩余时间。等到倒计时器和 Prepare to Cutover 按钮变为绿色,然后再继续下一步。

11
12

当Atlas检测到源集群和目标集群几乎同步时,它会启动一个可延长的72小时定时器,以开始切换过程。72 小时后,Atlas 将停止与源集群同步。您可以通过点击 <time> left to cut over 计时器下方的 Extend time 超链接将剩余时间延长 24 小时。

1

一旦您准备好将应用程序切换到目标 Atlas 集群,请单击 Prepare to Cutover

2

Atlas 显示一个演练屏幕,其中包含有关如何进行切换的说明。这些步骤概述如下:

  1. 停止您的应用程序。这样可以确保不会向到源集群生成额外的写入操作。

  2. 等待 ops/sec 间隙归零。当计数器归零时, 源集群和目标集群同步。

  3. 使用实时迁移服务切换用户界面上第 3 步中提供的新连接字符串重新启动应用程序。

3

完成转换过程并确认您的应用程序可在 Atlas 集群上正常工作后,单击 Cut Over(转换)以完成迁移过程。这样,Atlas 就能:

  • 将迁移计划标记为已完成。

  • 从目标集群 IP 访问列表中删除应用程序服务器子网。

  • 删除实时迁移服务用于将数据导入到目标集群的 MongoDB 用户。

如果您对迁移有任何超出本文档范围的问题,或者在迁移过程中遇到错误,请参阅有关请求支持的 Atlas 文档。

您创建了一个 Atlas 集群,从旧的 Compose 集群迁移了数据,并更新了应用程序以使用新的 Atlas 集群。 恭喜并欢迎使用 MongoDB Atlas!

入门指南 →