将 MongoDB 副本集从 AWS 迁移到 AWS 上的 MongoDB Atlas
MongoDB Atlas Live Migration Service(实时迁移服务)可帮助您快速、安全地将 MongoDB 数据库迁移至我们基于 AWS 的完全托管式云数据库 MongoDB Atlas 上。该服务的工作原理是连接到您的现有 MongoDB 数据库并将其与 Atlas 中运行的集群同步,同时您的应用程序将继续保持正常运行。一旦两个集群之间的数据完成同步,您便可以通过简单地更新您应用程序中的数据库连接字符串切换到 Atlas 中的集群。
所需时间:20 分钟
您需要的工具
您的数据当前存储在 MongoDB 数据库中。
本指南重点介绍如何从 AWS 上现有的自主管理 MongoDB 部署迁移到 AWS 上的 MongoDB Atlas。如果您的数据位于 MySQL、PostgreSQL 或 DynamoDB 等其他数据库系统中,请联系我们获得迁移帮助。
更新 MongoDB 驱动程序,并在应用程序层面进行必要的代码修改,确保兼容性。
当前部署是 MongoDB 副本集或分片集群。
如果您的部署当前是独立运行实例,则必须首先将其转换为副本集。
如果您要迁移副本集,则该副本集当前运行的应为 MongoDB 2.6 或更高版本。
Atlas 实时迁移 Service 可以将您的数据直接迁移到较新的数据库版本中。 有关支持的升级路径的更多信息,请参阅Atlas文档。
如果您运行的是早于2.6的版本,请参阅将MongoDB升级到2.6以获取升级说明。
如果您要迁移分片集群,则该集群当前运行的应为 MongoDB 4.0 或更高版本。
Atlas 实时迁移 Service 可以将您的数据直接迁移到相同的数据库版本。 有关支持的升级路径的更多信息,请参阅Atlas文档。
如果您运行的是早于4.0的版本,请参阅将MongoDB升级到4.0以获取升级说明。
(可选)在源部署上启用身份验证。
迁移进程要求在Amazon Web Services中的源集群上启用身份验证。 有关启用身份验证的说明,请参阅启用身份验证。 您可以使用
mongosh
命令身份验证源集群上是否已启用身份验证:mongosh <mongodb-connection-string> -u <mongodb-username> -p --authenticationDatabase admin 用于执行迁移的 AWS 上源集群中的数据库用户具有所需的 MongoDB 角色。
用户必须具有
clusterMonitor
和backup
角色。要验证计划用于迁移的数据库用户是否具有适当的角色,请针对管理员数据库运行 db.getUser() 命令。use admin db.getUser("admin") { "_id" : "admin.admin", "user" : "admin", "db" : "admin", "roles" : [ { "role" : "backup", "db" : "admin" }, { "role" : "clusterMonitor", "db" : "admin" } ] } ...
步骤
在 AWS 上运行的 MongoDB Atlas 中启动目标副本集。
有关说明,请参阅创建MongoDB帐户和创建新集群。
注意
您的目标集群必须使用 M10
或更大的实例节点。对于开发或暂存环境,请部署具有 M10
或M20
实例节点的集群。对于生产工作负载,请选择 M30
或更大的实例节点。
向 AWS 源集群添加 Atlas Live Migration Service 的 IP 地址。
在 Migrate Data to Cluster 模式的顶部,Atlas 会显示必须可从源集群访问的 IP 地址范围。所显示的地址范围取决于目标集群的位置,可能会发生变化,因此请确认输入的地址范围与模式所示的相同。
Amazon Web Services使用2 安全群组 保护 EC 服务器免遭未经授权的网络访问权限 。要将新的IP解决范围添加到IP访问列表,请创建一个新的安全组,或修改现有的安全组以允许来自所显示IP解决范围的入站网络访问权限。
以下是授权访问 Atlas Live Migration Service 实时迁移服务的安全组范例。
如果您创建新的安全群组,则必须将其与运行源集群的 EC2 实例关联。在 AWS EC2 控制台中,单击 Actions 下拉菜单,然后选择 Change Security Group。
有关创建或修改安全组的更多信息,请参阅向安全组 添加规则 在Amazon Web Services EC2 文档中。
执行切换。
当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 集群,从以前的 AWS MongoDB 集群迁移了数据并更新了应用程序,以使用在 AWS 上运行的新 MongoDB Atlas 集群。有关数据迁移进程的详情,请参阅将副本集实时迁移到 Atlas 和 mongomirror。