首页/数据/NoSQL 速查/mongodump 逻辑备份
MongoDB99 条

mongodump 逻辑备份

mongodump 导出 BSON 备份:支持指定库/集合、gzip 压缩与归档文件;复制集上用 --oplog 获取一致时间点快照。

NoSQL 速查数据更新于 2026-10-13

mongodump 做什么

mongodump 是 MongoDB 官方自带的逻辑备份工具,把库或集合的内容导出成 BSON 文件,通常与 mongorestore 配对使用。它通过查询接口读数据,对服务端的影响比物理备份方式小,但速度也更慢,适合中小规模数据库以及按库、按集合做选择性备份的场景。

基本信息

语法mongodump --uri="..." --out=<目录>
常用选项--gzip、--archive、--db、--collection、--oplog、--query
产物结构<out>/<db>/<collection>.bson 与对应的 metadata.json
一致性复制集上使用 --oplog 取得一致时间点快照
适用规模中小规模库;超大库应评估文件系统快照等物理方式

典型使用场景

  • 上线或结构变更前的整库留档
  • 只备份某个库或某张集合,做定点备份
  • 跨环境搬运数据:备份后在测试环境恢复验证
  • 配合 --query 只导出满足业务条件的一部分文档
  • 作为快照备份的补充手段,便于按集合找回单条数据

常用备份命令

常用备份命令
# 整库导出并压缩,输出目录带日期便于归档
mongodump --uri="mongodb://app:secret@m1:27017/app?authSource=app" --gzip --out=/backup/mongo/2026-10-13

# 只导出单个集合
mongodump --uri="mongodb://app:secret@m1:27017/app" --collection=orders --out=/backup/mongo/orders

# 复制集上取一致时间点快照:同时记录 oplog
mongodump --uri="mongodb://app:secret@m1:27017/app" --oplog --out=/backup/mongo/pit-2026-10-13

# 打成单个归档文件,便于压缩与传输
mongodump --uri="mongodb://app:secret@m1:27017/app" --archive=/backup/mongo/app-2026-10-13.archive --gzip

# 确认产物大小与目录结构
du -sh /backup/mongo/2026-10-13 && ls -l /backup/mongo/2026-10-13/app

常用选项与取舍

选项作用注意
--out指定输出目录目录不存在会自动创建
--gzip压缩每个 bson 文件节省空间但增加 CPU 开销
--archive输出为单个归档文件可与 --gzip 组合,便于整体传输
--oplog导出期间同时记录 oplog复制集专用,用于取得一致快照
--db / --collection限定导出范围范围越小越快,适合定点留档
--query按条件导出部分文档仅在指定 collection 时可用
未加 --oplog 时,备份期间产生的新写入不在快照范围内,各集合之间也可能处于不同时间点。对一致性要求高的场景应使用 --oplog,或从只读副本、隐藏节点执行备份。
逻辑备份会持续读取数据,耗时越长占用的连接与 IO 越多;大库建议从副本节点执行,避免主节点的写入延迟受到直接影响。

易错点

  • 不加 --oplog 就当成一致备份使用,备份期间的写入缺失,恢复后数据出现断层
  • 备份前未评估负载,大库导出期间主节点压力上升,业务写入延迟明显变高
  • --out 目录反复复用同一路径,旧备份被同名文件覆盖,历史时间点无法回溯
  • 超大库用逻辑备份,导出耗时长到无法在维护窗口内完成,这类规模应改用文件系统快照或云厂商的物理备份方案

数据来源与参考

  • MongoDB Manual: mongodump
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌