温馨提示×

MongoDB备份恢复在Debian上有哪些技巧

小樊
35
2025-12-21 03:49:45
栏目: 云计算

Debian上MongoDB备份恢复实用技巧

一 工具选择与适用场景

  • 使用 mongodump/mongorestore 做逻辑备份与恢复,适合大多数日常场景(跨版本迁移、按库/集合恢复、开发测试环境搭建)。在 Debian 上可直接通过安装 mongodb-clients 获得工具。示例:备份到按时间命名的目录,恢复指定库或集合。
  • 使用文件系统拷贝(停机拷贝 /var/lib/mongodb 数据目录)做物理备份,适合需要快速整机恢复的场景。操作前需确保 mongod 已停止,避免一致性问题。
  • 使用 mongoexport/mongoimport 做数据迁移/导出为 JSON/CSV,适合跨系统、跨数据库或仅迁移部分集合/字段的场景,注意并非完整 BSON 备份,索引/类型信息可能丢失。

二 快速上手命令模板

  • 安装工具
    • sudo apt update && sudo apt install -y mongodb-clients
  • 逻辑备份
    • 全量:mongodump --host localhost --port 27017 --out /backup/mongodb/$(date +%F_%H-%M-%S)
    • 指定库/集合:mongodump -h localhost -d mydb -c mycol -q ‘{status:{$gt:10}}’ --out /backup/mongodb/$(date +%F)
    • 压缩:在上述命令后加 –gzip
  • 逻辑恢复
    • 全量:mongorestore -h localhost -p 27017 /backup/mongodb/2025-12-21_10-00-00
    • 指定库/集合:mongorestore -h localhost -d mydb -c mycol /backup/mongodb/2025-12-21_10-00-00/mydb/mycol.bson
    • 覆盖写入:在恢复命令后加 –drop(谨慎使用)
  • 文件系统物理备份
    • 停止服务:sudo systemctl stop mongod
    • 拷贝数据目录:sudo rsync -aAX /var/lib/mongodb /backup/mongodb_data_$(date +%F)
    • 启动服务:sudo systemctl start mongod
  • 导出/导入(非完整备份)
    • 导出:mongoexport -d mydb -c users -o users.json --type json -f _id,name,age
    • 导入:mongoimport -d mydb -c users --file users.json --type json

三 自动化与保留策略

  • 定时备份脚本(示例)
    • 路径:/usr/local/bin/backup_mongodb.sh
    • 内容:
      • #!/usr/bin/env bash
      • BACKUP_DIR=“/backup/mongodb”
      • DATE=$(date +%F_%H-%M-%S)
      • mkdir -p “$BACKUP_DIR”
      • mongodump --out “$BACKUP_DIR/mongodb-$DATE” --gzip
      • find “$BACKUP_DIR” -type d -mtime +7 -exec rm -rf {} +
  • 定时任务
    • 每天 02:00 执行:0 2 * * * /usr/bin/mongodump --out /backup/mongodb/$(date +%Y%m%d%H%M%S) --gzip
    • 建议将脚本与日志分离,保留最近 7 天备份,并定期做恢复演练验证可用性。

四 安全与性能要点

  • 认证与网络
    • 远程/带认证备份:mongodump -h host -u user -p pass --authenticationDatabase admin --out /backup
    • 限制来源 IP、使用 TLS/SSL 加密传输,避免明文口令出现在命令行历史或进程列表中。
  • 资源与影响
    • 备份/恢复会占用 CPU/IO/网络,大数据量时建议在 从节点 执行或限制速率(如通过 cgroups/ionice),并在业务低峰期进行。
  • 一致性
    • 逻辑备份对运行中的数据库影响较小,但为降低业务影响可在维护窗口内执行;物理备份务必 停库 后再拷贝数据目录。
  • 压缩与加密
    • 使用 –gzip 减少磁盘占用;对备份文件启用 加密异地/云端 存储,提升可靠性与安全性。

五 常见问题与排查

  • 权限不足
    • 确保运行备份的用户对 /backup 有写权限,对 MongoDB 有权限(如使用 –authenticationDatabase admin 指定认证库)。
  • 恢复后索引缺失
    • mongorestore 默认不会删除目标库已有数据,使用 –drop 会先删除再写入;若需保留现有数据,请先做好全量备份并谨慎选择恢复策略。
  • 版本与兼容性
    • 跨大版本升级时,优先采用 mongodump/mongorestore 迁移数据,避免直接复用数据文件导致不兼容;必要时按官方升级路径逐步升级。
  • 备份有效性
    • 定期做 恢复演练,校验集合计数、索引与关键业务数据一致性,避免“备份不可用”的 silent failure。

0