Skip to content

MongoDB 备份与恢复

mongodump 逻辑备份

将数据导出为 BSON 文件(逻辑备份):

bash
# 备份整个实例到目录 dump/
mongodump --uri="mongodb://localhost:27017" --out=./dump

# 只备份指定数据库
mongodump --uri="mongodb://localhost:27017" --db=mydb --out=./dump

# 带认证
mongodump --uri="mongodb://user:pass@localhost:27017/mydb" --out=./dump

生成 dump/<dbname>/ 下各集合的 .bson.metadata.json

mongorestore 逻辑恢复

从 dump 目录恢复:

bash
# 恢复整个 dump 目录
mongorestore --uri="mongodb://localhost:27017" ./dump

# 只恢复指定库
mongorestore --uri="mongodb://localhost:27017" --db=mydb ./dump/mydb

副本集/分片注意点

  • 从 Secondary 做 dump 时可用 --readPreference=secondary,避免影响 Primary。
  • 分片集群通常对每个 shard 分别备份,或使用一致性快照(见下)。

文件系统/快照备份

生产环境常配合文件系统快照(如 LVM、EBS 快照)在某一时刻做物理备份,再结合 oplog 做按时间点恢复。具体步骤依赖部署环境与 MongoDB 版本,请参考官方 Backup and Restore

下一节介绍 MongoDB 监控