Linux环境下 MongoDB 的备份与恢复流程
一 工具与场景选择
- 使用 mongodump/mongorestore(BSON 二进制)进行日常备份与恢复,速度快、保留索引与类型信息,适合绝大多数场景。
- 使用 mongoexport/mongoimport(JSON/CSV)做数据导出、异构迁移或跨大版本兼容,注意 JSON/CSV 主要保留数据本身,通常不保留索引、账户等元数据。
- 需要时间点恢复(PITR)时,在 副本集/分片集群 环境使用 –oplog 获取一致性快照,恢复时配合 –oplogReplay 回放至指定时刻。
- 工具选择与差异概览:
| 工具 |
数据格式 |
主要用途 |
是否保留索引/账户 |
跨版本建议 |
| mongodump/mongorestore |
BSON |
日常备份恢复、迁移 |
是 |
版本差异大时先验证兼容性 |
| mongoexport/mongoimport |
JSON/CSV |
导出数据、异构平台迁移 |
否 |
跨大版本更稳妥 |
| 以上工具均可在 Linux 命令行直接使用,具体参数见下文示例。 |
|
|
|
|
二 备份流程
- 前置检查
- 确认 MongoDB 服务运行 且具备相应权限;远程备份需开放网络与认证。
- 规划备份目录(如 /opt/backup/mongo/2025-12-24),确保磁盘空间充足与权限正确。
- 常用备份命令
- 全库备份(含认证示例):
mongodump --host localhost --port 27017 --username myUser --password myPassword --authenticationDatabase admin --out /opt/backup/mongo/2025-12-24
- 指定库备份:
mongodump --host localhost --port 27017 --db mydb --out /opt/backup/mongo/2025-12-24
- 指定集合备份:
mongodump --host localhost --port 27017 --db mydb --collection mycol --out /opt/backup/mongo/2025-12-24
- 时间点备份(仅副本集/分片,获取一致性快照):
mongodump --host localhost --port 27017 --oplog --out /opt/backup/mongo/2025-12-24_oplog
- 备份后处理
- 校验备份目录是否生成 .bson 与 .metadata.json 等文件;可做压缩归档与异地/云存储同步。
- 建议记录备份结果与校验信息,便于审计与回滚。
三 恢复流程
- 基本恢复(mongorestore)
- 全库恢复:
mongorestore --host localhost --port 27017 --dir /opt/backup/mongo/2025-12-24
- 指定库恢复:
mongorestore --host localhost --port 27017 --db mydb --dir /opt/backup/mongo/2025-12-24/mydb
- 指定集合恢复:
mongorestore --host localhost --port 27017 --db mydb --collection mycol /opt/backup/mongo/2025-12-24/mydb/mycol.bson
- 覆盖写入控制:默认是追加导入,如需先清空再导入可加 –drop(谨慎使用,会删除目标库/集合现有数据)。
- 时间点恢复(PITR)
- 前提:使用 –oplog 备份得到一致性快照。
- 恢复:
mongorestore --host localhost --port 27017 --oplogReplay /opt/backup/mongo/2025-12-24_oplog
- 其它常用选项
- 认证:添加 –username、–password、–authenticationDatabase admin。
- 目录参数:使用 –dir 指定备份目录;注意 –dir 与直接路径参数不可同时指定。
- 校验
- 连接数据库检查集合数量、文档数、索引与关键业务数据一致性。
四 自动化与策略建议
- 定时备份
- 使用 crontab 执行备份脚本(如每日 02:00 全备),并配合日志轮转与告警。
- 存储与保留
- 结合本地盘、NAS、云存储分层保存;设置保留周期(如近 7/30 天),定期清理过期备份。
- 监控与告警
- 监控项建议:备份任务状态、备份文件大小/数量、磁盘使用率、恢复演练结果;失败即告警与自动重试。
- 恢复目标
- 结合业务设定 RTO/RPO 指标,定期演练验证可恢复性与用时。
五 常见问题与注意事项
- 版本兼容
- mongodump/mongorestore 跨大版本可能存在 BSON 兼容问题;无法保证时优先用 mongoexport/mongoimport(JSON/CSV)做迁移。
- 权限与安全
- 备份/恢复账号需具备相应角色(如 backup/restore 或更高);避免在命令行明文写密码,可用配置文件或密钥管理。
- 时间点恢复限制
- –oplog 仅适用于 副本集/分片 的一致性快照;单实例备份不支持 –oplog。
- 集合恢复覆盖
- 使用 –drop 会清空目标数据,务必在确认无误后执行;生产环境建议先备份当前状态。
- 索引与元数据
- JSON/CSV 导入不自动创建索引与账户,恢复后需按需重建与授权。