首页/数据/备份与容灾速查/MongoDB mongodump / mongorestore
数据库与云备份56 条

MongoDB mongodump / mongorestore

官方逻辑备份工具:导出 BSON 数据(支持 --gzip 与单文件 archive),mongorestore 支持 --drop 覆盖与按命名空间过滤。

备份与容灾速查数据更新于 2026-10-13

mongodump 是什么

mongodump / mongorestore 是 MongoDB 官方自带的逻辑备份工具对:导出 BSON 数据与元数据,可用 --gzip 压缩、用 --archive 生成单文件便于搬运,恢复时支持 --drop 覆盖同名集合与按命名空间过滤。它适合中小数据量与需要按库表挑着恢复的场景,超大数据量下应配合 --oplog 或改用文件系统/云快照方案。

基本信息

适用平台MongoDB 4.x 及以上(随 MongoDB Database Tools 独立发布)
产物BSON 数据文件 + 元数据 JSON;--archive 打包成单个文件
过滤选项--db、--collection、--nsInclude 按范围导出
一致性副本集可用 --oplog 捕获导出期间的变更,得到更接近单一时点的副本
分片集群备份前先停均衡器(sh.stopBalancer),完成后恢复均衡

典型使用场景

  • 按库或按集合迁移:调整分片键或合并集群时只搬指定数据
  • 误删集合恢复:从最近的备份里只恢复那一个集合,不影响其他库
  • 跨版本升级:逻辑导出在目标版本重新导入,绕开存储格式差异
  • 开发测试取数:从生产导出脱敏子集导入测试环境
  • 小规模集群的日常备份:配置简单,配合定时任务即可落地

备份与恢复

备份与恢复
# 全实例导出为压缩单文件,便于流转与归档
mongodump --uri="mongodb://backup@127.0.0.1:27017" \
  --gzip --archive=/backup/mongo-$(date +%F).archive
# 副本集加 --oplog:记录导出期间的变更,提高一致性
mongodump --uri="mongodb://backup@127.0.0.1:27017" --oplog \
  --gzip --archive=/backup/mongo-oplog.archive
# 只导出指定库的指定集合
mongodump --uri="mongodb://backup@127.0.0.1:27017" --db=appdb \
  --collection=orders --gzip --out=/backup/orders
# 恢复:--drop 会先删除同名集合再导入
mongorestore --uri="mongodb://restore@127.0.0.1:27017" \
  --gzip --archive=/backup/mongo-2026-10-12.archive --drop

常用选项读法

选项作用注意点
--archive把整个导出打包成单个文件便于搬运,但不能按文件粒度挑内容,需靠过滤参数
--gzip压缩数据文件,显著减小体积压缩耗 CPU,导出窗口会略变长
--oplog副本集下记录导出期间变更,用于得到一致时点需要 oplog 覆盖整个导出窗口,否则会失败
--drop恢复前删除同名集合指向生产库等同于覆盖数据,必须先确认目标环境
--nsInclude按命名空间过滤导出范围模式写法需与库集合命名一致
分片集群备份前先停均衡器(sh.stopBalancer),完成后再启动,避免备份过程中块迁移造成各分片数据分布不一致。
mongodump 是逻辑工具且默认单线程,数据量大时导出窗口很长,期间新增数据不在副本里;有严格 RPO 要求的集群应改用文件系统或云快照,并配合 oplog 补齐。

易错点

  • 对生产目标使用 --drop:恢复前删除同名集合,等于用备份覆盖线上数据
  • 分片集群不停均衡器就备份:备份期间块迁移导致分片数据分布不一致,恢复后易出现孤儿文档
  • 导出窗口超过 oplog 保留范围:加 --oplog 时任务失败,只能重做或退化为不一致副本
  • 把逻辑备份当低 RPO 方案:导出时长与数据量成正比,窗口内的变更不在备份中

数据来源与参考

  • MongoDB 官方文档(mongodump / mongorestore)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌