温馨提示×

Debian MongoDB数据备份方法

小樊
44
2025-12-21 03:13:41
栏目: 云计算

Debian 上 MongoDB 备份与恢复实操指南

一 环境准备与工具安装

  • 安装 MongoDB 客户端工具(包含 mongodump/mongorestore):
    • Debian 10/11 常见包名:mongodb-clients
    • Debian 12 常见包名:mongodb-mongosh/mongodb-database-tools
  • 创建备份目录并设定权限(示例:/backup/mongodb):
    • 命令:sudo mkdir -p /backup/mongodb && sudo chown -R mongodb:mongodb /backup/mongodb
  • 如启用了访问控制,准备具有备份权限的账户,并明确 –authenticationDatabase(通常为 admin)。

二 常用备份方法

  • 全量逻辑备份(mongodump)
    • 备份所有库:mongodump --out /backup/mongodb/$(date +%Y%m%d%H%M%S)
    • 备份指定库:mongodump --db your_db --out /backup/mongodb/$(date +%Y%m%d%H%M%S)
    • 备份指定集合:mongodump --db your_db --collection your_coll --out /backup/mongodb/$(date +%Y%m%d%H%M%S)
    • 启用认证的示例:mongodump --username your_user --password your_pass --authenticationDatabase admin --out /backup/mongodb/$(date +%Y%m%d%H%M%S)
  • 导出为 JSON/CSV(mongoexport,适合分析/迁移)
    • JSON:mongoexport --db your_db --collection your_coll --out /backup/your_coll.json --type json
    • CSV:mongoexport --db your_db --collection your_coll --out /backup/your_coll.csv --type csv -f field1,field2
  • 压缩归档
    • 示例:tar -czvf /backup/mongodb_$(date +%Y%m%d%H%M%S).tar.gz -C /backup/mongodb $(date +%Y%m%d%H%M%S)
  • 时间点/增量思路
    • 副本集/分片集群可在 mongodump 时使用 –oplog 捕获操作日志,实现时间点恢复能力(单机部署通常不适用)。

三 自动化与日志

  • 备份脚本示例(/usr/local/bin/mongodb_backup.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
    • 赋权:sudo chmod +x /usr/local/bin/mongodb_backup.sh
  • 定时任务(cron)
    • 每天 02:00 执行:0 2 * * * /usr/local/bin/mongodb_backup.sh
  • 日志与监控
    • 建议将标准输出与错误输出重定向到日志文件(如 /var/log/mongodb_backup.log),并定期巡检;必要时接入告警。

四 恢复与校验

  • 逻辑恢复(mongorestore)
    • 恢复全量:mongorestore /backup/mongodb/20250412_020000
    • 恢复到指定库:mongorestore --db target_db /backup/mongodb/20250412_020000/your_db
    • 仅恢复某集合:mongorestore --db target_db --collection target_coll /backup/mongodb/20250412_020000/your_db/your_coll.bson
    • 谨慎使用 –drop(恢复前会删除目标库/集合数据)
  • 校验建议
    • 定期做“演练恢复”(如恢复到临时库),核对集合数量、索引、数据量及关键业务查询;保留至少 1–2 个历史备份周期,防止逻辑/人为错误。

五 注意事项与最佳实践

  • 权限与安全
    • 备份目录权限最小化,避免明文密码出现在命令行或脚本中(生产可用凭据文件或密钥管理);仅开放必要网络访问,必要时通过 SSH 隧道/内网执行备份。
  • 性能与资源
    • 备份会占用 CPU/IO/网络,建议在业务低峰期执行;大数据量可分库/分集合并行,或采用物理备份/文件系统快照(配合停机或一致性保证)。
  • 版本与工具匹配
    • 不同 MongoDB 版本的 mongodump/mongorestore 兼容性存在差异,升级前务必先完成有效备份;跨大版本恢复前建议在测试环境验证。

0