温馨提示×

Linux环境下MongoDB的备份恢复流程

小樊
32
2025-12-24 08:53:57
栏目: 云计算

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 导入不自动创建索引与账户,恢复后需按需重建与授权。

0