温馨提示×

Ubuntu MongoDB数据备份如何配置

小樊
43
2025-12-10 19:55:05
栏目: 云计算

Ubuntu 上 MongoDB 备份配置指南

一 备份方式选型

  • mongodump/mongorestore:导出为BSON,便于迁移与按库/集合恢复;对运行中的实例影响可控,适合小型到中型部署。副本集可用 –oplog 捕获备份窗口内的操作,实现时间点恢复(需配合 –oplogReplay 恢复)。
  • 文件系统快照(LVM、EBS 等):对运行中的 mongod 需开启WiredTiger 日志(journal),且日志与数据文件在同一逻辑卷;可获得接近瞬时的一致性快照,适合大型或高性能诉求场景。
  • Cloud Manager/Ops Manager:面向 MongoDB Enterprise,基于 oplog持续备份时间点恢复,对副本集/分片集群更友好,运维成本低。
  • 方法对比要点:Cloud/Ops Manager 具备低 RTO/RPO与自动化;文件系统快照速度快但对环境有依赖;mongodump通用易用RTO/RPO 较高且对大库更耗时。

二 使用 mongodump 的实操配置

  • 安装工具(若未随 MongoDB 安装):sudo apt update && sudo apt install -y mongodb-tools
  • 基本用法(示例):
    • 全库备份:mongodump --out /backup/$(date +%F_%H-%M-%S)
    • 指定库:mongodump --db mydb --out /backup/mydb_$(date +%F)
    • 指定集合:mongodump --db mydb --collection mycol --out /backup/mydb_mycol
    • 压缩输出:mongodump --db mydb --gzip --out /backup/mydb_$(date +%F)
  • 副本集时间点备份:mongodump --host rs0/primary:27017 --oplog --out /backup/rs0_$(date +%F);恢复:mongorestore --oplogReplay /backup/rs0_YYYY-MM-DD
  • 常用优化与安全:
    • 从节点上执行备份以降低主节点影响;
    • 使用 –uri 或指定 –username/–password/–authenticationDatabase 进行鉴权;
    • 备份窗口置于业务低峰

三 自动化与保留策略

  • 定时任务(crontab):
    • 每天 02:00 全库备份并压缩:
      0 2 * * * /usr/bin/mongodump --gzip --out /backup/mongo_$(date +%F)
    • 注意:cron 中 % 需转义为 %
  • 保留策略(示例):删除 7 天前备份
    find /backup -mindepth 1 -maxdepth 1 -type d -mtime +7 -exec rm -rf {} +
  • 备份目录建议:使用如 /var/backups/mongobackups 并设定合适属主与权限,便于审计与隔离。

四 恢复流程与要点

  • 全库恢复:mongorestore /backup/mongo_2025-08-01
  • 指定库/集合:mongorestore --db mydb /backup/mongo_2025-08-01/mydb;集合:mongorestore --db mydb --collection mycol /backup/mongo_2025-08-01/mydb/mycol.bson
  • 时间点恢复(基于 oplog):mongorestore --oplogReplay /backup/rs0_2025-08-01
  • 一致性校验:恢复后抽样查询集合计数、索引与关键业务数据,必要时在预备环境演练。

五 生产环境建议

  • 规模与方法:数据量大或 RTO/RPO 要求严格时优先 文件系统快照Cloud/Ops Manager;中小规模且需灵活迁移时用 mongodump
  • 副本集实践:在隐藏/延迟从节点上备份,避免影响主业务;开启 journal,必要时使用 –oplog 做时间点恢复。
  • 分片集群:优先 Cloud/Ops Manager;若用 mongodump,需按官方流程对各分片与 config server 分别处理并协调恢复。
  • 加密存储引擎提示:使用 AES256-GCM 时,尽量采用热备份;如从冷备份恢复,MongoDB 4.2+ 需配合 –eseDatabaseKeyRollover 执行密钥轮换以避免 IV 重用

0