从 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。
步骤
登录您的 Compose 帐户。
登录您的 Compose 帐户 并导航到要迁移到 Atlas 的部署。
注意
在迁移过程中,保持 Compose 部署控制台上的一个浏览器窗口和Atlas 控制台上的一个窗口打开会很有帮助。
创建 oplog 用户。
单击左侧导航栏中的 Add-ons链接。 如果您没有Oplog Access插件,请使用Add按钮添加。
如果您已经安装了Oplog Access插件,请单击Configure查看 oplog 用户名和密码。
要执行迁移过程,oplog 用户必须具有以下特权:
备份角色。
如果您无法向 oplog 用户授予这些权限,则实时迁移过程将无法进行。在这种情况下,请使用mongodump 和 mongorestore将数据迁移到 Atlas。
将 Compose 部署的主机名和端口添加到“Atlas 实时迁移”对话框中。
在Oplog Access附加组件页面上,您将找到一个连接字符串,其中包含用于 oplog 访问的主机名和端口。 将它们复制到“Atlas 实时迁移”对话框中。
输入您的 Compose TLS/SSL 证书数据。
如果您没有在 Compose 部署中启用 TLS/SSL,请跳过此步骤。
重要
在某些 Compose 部署中,您无法再在 Compose 用户界面中查看 TLS/SSL 证书。 如果您的部署属于这种情况,您有两个选择:
直接联系 Compose 以请求 TLS/SSL 证书。
使用MongoMirror将数据迁移到 Atlas。
请参阅 Compose 文档 以了解有关 SSL 证书的更多信息。
在Oplog Access附加组件页面上,您会找到一个 SSL 证书。 将其复制到“Atlas 实时迁移”对话框上的 CAFile 文本框中。
注意
复制整个证书文件,包括BEGIN CERTIFICATE
和END CERTIFICATE
行。
执行切换。
当Atlas检测到源集群和目标集群几乎同步时,它会启动一个可延长的72小时定时器,以开始切换过程。72 小时后,Atlas 将停止与源集群同步。您可以通过点击 <time> left to cut over 计时器下方的 Extend time 超链接将剩余时间延长 24 小时。
一旦您准备好将应用程序切换到目标 Atlas 集群,请单击 Prepare to Cutover。
Atlas 显示一个演练屏幕,其中包含有关如何进行切换的说明。这些步骤概述如下:
停止您的应用程序。这样可以确保不会向到源集群生成额外的写入操作。
等待 ops/sec 间隙归零。当计数器归零时, 源集群和目标集群同步。
使用实时迁移服务切换用户界面上第 3 步中提供的新连接字符串重新启动应用程序。
完成转换过程并确认您的应用程序可在 Atlas 集群上正常工作后,单击 Cut Over(转换)以完成迁移过程。这样,Atlas 就能:
将迁移计划标记为已完成。
从目标集群 IP 访问列表中删除应用程序服务器子网。
删除实时迁移服务用于将数据导入到目标集群的 MongoDB 用户。
迁移支持
如果您对迁移有任何超出本文档范围的问题,或者在迁移过程中遇到错误,请参阅有关请求支持的 Atlas 文档。
总结
您创建了一个 Atlas 集群,从旧的 Compose 集群迁移了数据,并更新了应用程序以使用新的 Atlas 集群。 恭喜并欢迎使用 MongoDB Atlas!