Debian系统MongoDB备份策略
导读:Debian系统MongoDB备份策略 一 策略总览 备份方式 逻辑备份:使用 mongodump/mongorestore,便于跨版本迁移、选择性恢复与离线存档。 时间点恢复:在 副本集 上结合 oplog 实现近实时恢复能力(需具备...
Debian系统MongoDB备份策略
一 策略总览
- 备份方式
- 逻辑备份:使用 mongodump/mongorestore,便于跨版本迁移、选择性恢复与离线存档。
- 时间点恢复:在 副本集 上结合 oplog 实现近实时恢复能力(需具备相应权限与配置)。
- 物理备份:直接拷贝数据文件(文件系统快照/LVM快照等),恢复速度快,但要求与版本、存储引擎严格匹配,变更窗口要求高。
- 频率与保留
- 生产环境:建议 每日全量,关键业务可叠加 每小时增量/oplog;开发/测试环境:每周全量 即可。
- 保留策略:建议 7天日备、4周周备、12个月月备 的“祖父-父-子”保留,兼顾恢复粒度与成本。
- 存储与异地
- 备份落盘到独立磁盘/分区;对敏感数据启用 加密;定期将备份 传输到异地/对象存储 以抵御地域性故障。
- 高可用与恢复目标
- 架构层面优先部署 副本集(至少3节点) 降低数据丢失概率;结合备份实现可验证的 RPO/RTO 目标。
二 工具与准备
- 安装工具包
- Debian 上安装客户端工具:sudo apt update & & sudo apt install -y mongodb-clients。
- 目录与权限
- 创建备份目录并设定权限(示例以 mongodb 用户运行):
sudo mkdir -p /backup/mongodb
sudo chown -R mongodb:mongodb /backup/mongodb
- 创建备份目录并设定权限(示例以 mongodb 用户运行):
- 连接与认证
- 具备备份权限的账号,指定认证库(常见为 admin):
mongodump --username --password --authenticationDatabase admin [–host --port ]。
- 具备备份权限的账号,指定认证库(常见为 admin):
三 备份实施步骤
- 全量备份(mongodump)
- 所有库:
mongodump --out /backup/mongodb/$(date +%Y%m%d%H%M%S) - 指定库:
mongodump --db --out /backup/mongodb/$(date +%Y%m%d%H%M%S) - 压缩归档(可选):
tar -czvf /backup/mongodb/mongodb_backup_$(date +%Y%m%d%H%M%S).tar.gz /backup/mongodb/$(date +%Y%m%d%H%M%S)
- 所有库:
- 时间点恢复能力(副本集)
- 前提:实例为 副本集,备份账户具备 oplog 读取权限。
- 做法:在全量备份的同时获取 oplog,用于回放到指定时间点:
mongodump --host --oplog --out /backup/mongodb/$(date +%Y%m%d%H%M%S)
恢复时结合 mongorestore --oplogReplay 实现时间点恢复(具体命令依环境与版本调整)。
- 物理备份(可选)
- 适用场景:对 恢复时间 要求极高、可接受严格变更窗口与版本/引擎一致性约束的环境。
- 方式:在文件系统/存储层创建 快照(如 LVM、云盘快照),快照完成后将快照拷贝到备份存储;恢复时基于快照快速回滚数据文件。
四 自动化与保留策略
- 自动化脚本示例(含压缩与7天保留)
-
保存为 /usr/local/bin/backup_mongodb.sh,赋权 chmod +x: #!/bin/bash set -Eeuo pipefail BACKUP_DIR=“/backup/mongodb” DATE=$(date +%Y%m%d%H%M%S) TMP_DIR=“$BACKUP_DIR/$DATE” LOG=“$BACKUP_DIR/backup_$DATE.log”
mkdir -p “$TMP_DIR” mongodump --out “$TMP_DIR” > > “$LOG” 2> & 1 || { echo “mongodump failed”; exit 1; }
tar -czvf “$BACKUP_DIR/mongodb_backup_$DATE.tar.gz” -C “$TMP_DIR” . > > “$LOG” 2> & 1 rm -rf “$TMP_DIR”
保留最近7天
find “$BACKUP_DIR” -type f -name ‘mongodb_backup_*.tar.gz’ -mtime +7 -delete
-
- 定时任务
- 每天 02:00 执行:
0 2 * * * /usr/local/bin/backup_mongodb.sh
- 每天 02:00 执行:
- 备份验证
- 定期抽样恢复(或 mongorestore --dryRun)验证可用性;校验文件列表、大小与关键集合记录数。
五 恢复与验证
- 逻辑恢复(mongorestore)
- 全量恢复:
mongorestore /backup/mongodb// - 指定库/集合:
mongorestore --db /backup/mongodb//
- 全量恢复:
- 时间点恢复(副本集)
- 基于含 oplog 的备份目录执行:
mongorestore --oplogReplay /backup/mongodb//
- 基于含 oplog 的备份目录执行:
- 物理恢复
- 将快照还原到数据目录,确保 文件权限/属主 与 SELinux/AppArmor 配置正确,再以合适方式启动 mongod(必要时先以单节点方式校验)。
- 验证要点
- 校验集合/索引数量、抽样文档、视图/触发器(如有)、应用侧关键流程自检;记录 恢复耗时 与 数据一致性 结果。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian系统MongoDB备份策略
本文地址: https://pptw.com/jishu/753843.html
