Ubuntu 上 MongoDB 数据备份实操指南
一 常用备份方法概览
- mongodump/mongorestore:导出为 BSON 的二进制备份,保留数据类型与索引,适合中小型数据库与迁移;支持按库/集合粒度操作。
- 文件系统快照(LVM 等):对数据目录所在卷做快照,速度快、影响小,适合大型数据库;需底层文件系统/存储支持。
- MongoDB Atlas 备份:云托管自动备份,支持时间点恢复(PITR),适合使用 Atlas 的场景。
- Percona Backup for MongoDB(PBM):开源企业级方案,支持增量/全量与 S3 等存储,适合需要自动化与远程备份的团队。
- oplog 增量:基于 oplog 的回放实现时间点恢复,常用于复制集环境。
选择建议:中小规模优先用 mongodump;大规模与低影响优先 LVM 快照;云上用 Atlas 备份;需要增量与远程存储选 PBM。
二 使用 mongodump 进行备份与恢复(Ubuntu 常用)
- 安装工具(若未随 MongoDB 安装):sudo apt-get install mongodb-clients(或 mongodb-tools)。
- 全量备份:mongodump --out /backup/mongodump_$(date +%F_%H-%M-%S)
- 指定库/集合:mongodump --db mydb --collection mycol --out /backup/mydb_mycol
- 压缩备份:mongodump --db mydb --gzip --out /backup/mydb_gzip
- 恢复全量:mongorestore /backup/mongodump_2025-12-20_10-00-00
- 恢复指定库/集合:mongorestore --db mydb /backup/mydb 或 mongorestore --db mydb --collection mycol /backup/mydb/mycol.bson
- 按命名空间包含/排除:mongorestore --nsInclude mydb.* /backup/mydb;如需先清库再加 --drop
- 提示:mongodump 生成的目录包含 .bson 与 .metadata.json,恢复时索引会一并恢复。
三 自动化与保留策略(含压缩与清理)
- 定时备份(cron,示例每日 02:00 全量):
0 2 * * * /usr/bin/mongodump --gzip --out /backup/mongodump_$(date +%F)
注意:cron 中 % 需转义为 %。
- 保留策略(示例保留最近 7 天):
0 1 * * * find /backup -type d -mtime +7 -exec rm -rf {} ;
- 压缩与归档:mongodump 加 –gzip;备份完成后可用 tar 归档并同步到远端存储。
- 运行时段:在业务低峰执行,降低对线上写入影响。
四 大型库与高可用场景的备份方案
- LVM 快照(示例):
1)创建快照:lvcreate --size 1G --snapshot --name mdb-snap /dev/mapper/vg0-mongodb
2)挂载快照:mount /dev/mapper/vg0-mdb-snap /mnt/mdb-snapshot
3)拷贝数据:rsync -av /mnt/mdb-snapshot/ /backup/mongodb-snap/
4)卸载并删除快照:umount /mnt/mdb-snapshot && lvremove /dev/mapper/vg0-mdb-snap
要点:确保快照大小足够,备份完成尽快释放。
- Percona Backup for MongoDB(PBM):
1)安装 PBM 客户端;2)配置 pbm.yaml(如 S3 存储、凭证、前缀);3)执行备份:pbm backup;4)恢复:pbm restore 。
- MongoDB Atlas 备份:在控制台配置备份策略与保留,需要时按时间点恢复。
- oplog 增量/时间点恢复:在复制集环境启用 oplog,结合 mongodump/restore 的 –oplogReplay 可实现精确时点回放(操作较复杂,建议演练)。
五 备份验证与常见注意事项
- 定期做恢复演练:抽样恢复库/集合,校验数据量与关键业务查询。
- 权限与安全:备份用户需具备读取库/集合与 listCollections 等权限;备份文件加密存储并限制访问。
- 监控与告警:对备份成功率、耗时、容量设监控与告警,及时发现失败。
- 性能与影响:mongodump 会带来一定负载,尽量在从节点或低峰执行;大型库优先 LVM 快照 或 PBM。
- 一致性:对高写入场景,结合 复制集 与 oplog 实现更细粒度的恢复能力。