温馨提示×

Debian系统中MongoDB备份策略

小樊
41
2025-12-09 06:23:14
栏目: 云计算

Debian系统MongoDB备份策略

一 策略总览

  • 备份方式:以mongodump/mongorestore为主做逻辑备份,适合大多数应用;对副本集建议结合oplog实现时间点恢复能力。
  • 频率建议:依据业务关键性、数据变化率与RPO要求综合确定;常见为每日全量,高变更业务可每小时;超低频数据可每周/每月归档。
  • 保留策略:采用分级保留(如近7天每日、近4周每周、近12月每月),在存储与安全间平衡。
  • 安全与合规:备份文件加密异地/远程存放(如对象存储/挂载盘),并定期恢复演练验证可用性。

二 环境与工具准备

  • 安装工具包:在Debian上安装MongoDB客户端工具(含mongodump/mongorestore)。
    命令:sudo apt update && sudo apt install -y mongodb-clients(或安装mongodb-org-tools)。
  • 目录与权限:创建备份目录并设定合适权限。
    命令:sudo mkdir -p /backup/mongodb;sudo chown -R mongodb:mongodb /backup/mongodb。
  • 网络与认证:确保备份来源可连MongoDB;若启用认证,使用**–username**、–password与**–authenticationDatabase admin**。

三 备份实施步骤

  • 全量备份(mongodump):
    1. 基本:mongodump --out /backup/mongodb/$(date +%Y%m%d%H%M%S)
    2. 指定库:mongodump --db your_db --out /backup/mongodb/…
    3. 带认证:mongodump --username user --password pass --authenticationDatabase admin --out
  • 压缩归档:备份完成后压缩以节省空间。
    命令:cd /backup/mongodb && sudo tar -czvf mongodb_backup_$(date +%Y%m%d%H%M%S).tar.gz $(date +%Y%m%d%H%M%S)
  • 时间点恢复能力(副本集):在mongodump时使用**–oplog**捕获操作日志,便于恢复到故障前任意时刻。
  • 基本验证:检查备份目录/压缩包是否存在且大小合理(ls -l、du -sh)。

四 自动化与保留策略

  • 自动化脚本示例(含日志与压缩):
    #!/bin/bash
    BACKUP_DIR=“/backup/mongodb”
    DATE=$(date +%Y%m%d%H%M%S)
    LOG_FILE=“/var/log/mongodb_backup.log”
    mkdir -p $BACKUP_DIR
    mongodump --username “$MONGO_USER” --password “$MONGO_PASS” --authenticationDatabase admin --out $BACKUP_DIR/$DATE >> $LOG_FILE 2>&1
    tar -czf $BACKUP_DIR/$DATE.tar.gz -C $BACKUP_DIR $DATE >> $LOG_FILE 2>&1
    rm -rf $BACKUP_DIR/$DATE >> $LOG_FILE 2>&1

    保留最近7天

    find $BACKUP_DIR -type f -name “*.tar.gz” -mtime +7 -delete >> $LOG_FILE 2>&1
  • 定时任务(cron):
    每天02:00执行:0 2 * * * /usr/local/bin/mongodb_backup.sh
  • 敏感信息管理:避免在脚本中硬编码密码,优先使用环境变量或受控配置文件。

五 恢复与验证

  • 恢复命令:mongorestore /backup/mongodb/2025…/ 或指定库/集合恢复。
  • 是否停库:
    • 单实例:为减少一致性风险,常见做法是停止mongod后恢复,再启动服务。
    • 副本集:通常使用mongorestore隐藏/从节点或维护窗口内操作,避免影响线上主节点。
  • 恢复后验证:连接MongoDB检查集合/文档数量、索引与关键业务数据一致性;建议定期演练并抽样恢复。

0