centos

MongoDB在CentOS上的备份与恢复策略

小樊
41
2025-08-20 17:04:47
栏目: 云计算

一、备份策略

  1. 全量备份
    使用 mongodump 命令备份所有数据库,可指定压缩或输出到指定目录,例如:

    mongodump --out /backup/mongodb/$(date +%Y%m%d%H%M%S) --gzip
    
  2. 增量备份

    • 基于 --oplog 参数(需在副本集环境):
      mongodump --oplog --out /backup/incremental/$(date +%Y%m%d%H%M%S)
      
    • 使用 rsync 同步数据文件(适用于物理备份):
      rsync -av --delete /var/lib/mongo/ /backup/mongodb/incremental/
      
  3. 定时备份
    通过 crontab 设置周期性任务,例如每天凌晨2点执行全量备份:

    0 2 * * * mongodump --out /backup/mongodb/$(date +%Y%m%d%H%M%S) --gzip
    
  4. 备份存储与验证

    • 存储到远程服务器或云存储(如使用 scp/rsync)。
    • 定期用 mongorestore --dryRun 测试备份可恢复性。

二、恢复策略

  1. 全量恢复

    • 停止MongoDB服务:sudo systemctl stop mongod
    • 解压备份文件并移动到数据目录:
      tar -xzvf /backup/mongodb/backup.tar.gz -C /
      mv /data/db /var/lib/mongo  # 确保路径正确
      
    • 启动服务:sudo systemctl start mongod
  2. 增量恢复

    • 先恢复全量备份,再按时间顺序应用增量备份的 oplog 文件:
      mongorestore --oplogReplay /backup/incremental/$(date +%Y%m%d%H%M%S)
      
  3. 恢复指定数据库/集合

    mongorestore --db test --collection users /backup/mongodb/test/users.bson
    

三、注意事项

参考来源:[1,2,3,4,5,6,7,8,10,11,12]

0
看了该问题的人还看了