You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MongoDB Atlas中的数据迁移至AWS EC2实例?

MongoDB Atlas 迁移到 AWS EC2 自建实例可行方案

前置准备工作

  • 确认 Atlas M10 集群的网络访问规则,将你用来执行迁移操作的设备/EC2 实例 IP 加入 Atlas 的白名单,同时获取具备数据库read及以上权限的 Atlas 连接账号
  • 在 AWS EC2 上完成 MongoDB 部署,版本尽量和 Atlas 所用版本完全一致,避免兼容性问题。部署完成后创建具备readWrite权限的数据库账号,配置 EC2 安全组开放 27017 端口(仅开放必要访问的 IP 段,不要全开 0.0.0.0 避免安全风险)
  • 提前用 MongoDB Shell 测试本地/EC2 设备可以正常连接 Atlas 和 EC2 上的 MongoDB 实例,确认连接链路无问题

迁移方案

方案1:全量导出导入(适合数据量不大、可接受短时间停服的场景,对初学者最友好,操作简单易排查问题)

  • 第一步:暂停业务应用的所有写入操作,避免迁移过程中产生新数据导致两边数据不一致
  • 第二步:用mongodump工具导出 Atlas 全量数据,命令示例:
mongodump --uri "mongodb+srv://<Atlas账号>:<Atlas密码>@<Atlas集群地址>/<待迁移的数据库名>" --out <本地备份文件保存路径>
  • 第三步:通过 scp 或其他你熟悉的文件传输工具,把导出的备份文件传到 EC2 服务器上
  • 第四步:在 EC2 上用mongorestore工具导入数据,命令示例:
mongorestore --uri "mongodb://<EC2 MongoDB账号>:<EC2 MongoDB密码>@<EC2地址>:27017/<目标数据库名>" <备份文件中对应数据库的文件夹路径>
  • 第五步:导入完成后手动抽查两边的数据条数、核心字段内容确认完全一致,没有报错后就可以把业务应用的数据库连接地址替换为 EC2 上的 MongoDB 地址,重启应用验证功能正常即完成迁移。

方案2:全量+增量同步(适合数据量大、不能接受长时间停服的场景,操作复杂度稍高)

  • 第一步:确认 Atlas 集群已开启 oplog,M10 层级默认开启无需额外配置
  • 第二步:执行带 oplog 记录的全量导出,命令示例:
mongodump --uri "mongodb+srv://<Atlas账号>:<Atlas密码>@<Atlas集群地址>" --oplog --out <本地备份路径>
  • 第三步:把备份文件传到 EC2 后,执行带 oplog 重放的全量导入,命令示例:
mongorestore --uri "mongodb://<EC2 MongoDB账号>:<EC2 MongoDB密码>@<EC2地址>:27017" --oplogReplay <备份文件路径>
  • 第四步:用 MongoDB 自带的 Change Stream 功能或第三方同步工具配置增量同步,将全量备份完成后 Atlas 产生的新数据实时同步到 EC2 实例
  • 第五步:等到两边数据完全追平后,选择业务低峰期暂停应用写入,确认最后一批增量数据同步完成,切换应用的数据库连接到 EC2 实例,重启验证功能正常即完成迁移。

注意事项

  • 迁移前后必须做数据校验,可分别在 Atlas 和 EC2 上执行db.<集合名>.count()核对数据条数,抽查核心业务字段内容是否一致
  • 建议先在测试环境走一遍完整迁移流程,确认没有问题再操作生产数据
  • EC2 上的 MongoDB 要配置定期自动备份策略,备份文件可存储到 S3 避免数据丢失

内容的提问来源于stack exchange,提问作者흑수의 세상

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:24:03