从 Compose 迁移到 MongoDB Atlas
Overview
本指南将引导您了解如何使用 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 实时迁移 Service 可以将您的数据直接迁移到较新的数据库版本。 更新MongoDB驱动程序并在应用程序级别进行任何必要的代码更改,以确保兼容性。 如果您运行的是早于2的版本。 6 、 请参阅将MongoDB升级到2 。 6查看升级说明。
当前部署是 MongoDB 副本集或分片集群。
如果您的部署当前是独立运行实例,则必须首先将其转换为副本集。
不支持从分片集群实时迁移数据。 目标集群可以是分片的,但源集群必须是未分片的副本集。
(可选)在源部署上启用身份验证。
迁移进程要求在Amazon Web Services中的源集群上启用身份验证。 有关启用身份验证的说明,请参阅启用身份验证。 您可以使用
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!