- 首页 >
- 问答 >
-
云计算 >
- MongoDB在Debian上如何备份策略
MongoDB在Debian上如何备份策略
小樊
45
2025-11-15 13:12:37
MongoDB 在 Debian 上的备份策略
一 策略总览
- 备份方式以官方工具为主:使用 mongodump 做逻辑备份,配合 mongorestore 恢复;在 副本集 场景开启 oplog 可实现时间点恢复(PITR)。
- 运行方式:单实例可直接连接本地实例;副本集需连接到 mongos 或各 secondary 节点执行导出。
- 存储与保留:本地保留近 7 天,每周做归档并同步到远端(如对象存储/异地机房),避免单点故障。
- 自动化与监控:用 cron 定时执行脚本,记录日志与返回码,定期做恢复演练与容量评估。
二 工具与准备
- 安装客户端工具(仅备份无需安装 mongod):
sudo apt update && sudo apt install -y mongodb-clients
- 创建备份目录并设定权限:
sudo mkdir -p /backup/mongodb && sudo chown mongodb:mongodb /backup/mongodb
- 认证与连接:如使用 SCRAM 认证,准备具有备份权限的账号,并在命令中指定 –username、–password 与 –authenticationDatabase admin。
三 备份方法与命令
- 全量备份(单库/全库)
- 全库:mongodump --host localhost --port 27017 --out /backup/mongodb/$(date +%Y%m%d%H%M%S)
- 单库:mongodump --host localhost --port 27017 --db mydb --out /backup/mongodb/mydb-$(date +%Y%m%d%H%M%S)
- 认证示例:mongodump --host localhost --port 27017 --username backup --password ******* --authenticationDatabase admin --out /backup/mongodb/…
- 压缩归档(节省空间)
- 目录打包:tar -czvf /backup/mongodb/backup-$(date +%Y%m%d%H%M%S).tar.gz /backup/mongodb/2025…
- 时间点恢复能力(副本集)
- 备份:mongodump --host rs0/… --oplog --out /backup/mongodb/oplog-$(date +%Y%m%d%H%M%S)
- 恢复:mongorestore --oplogReplay /backup/mongodb/oplog-…
- 远程/云存储(示例思路)
- 备份完成后用 scp/rsync 或云 SDK 将压缩包同步到远端存储,确保异地可用。
四 自动化与保留策略
- 示例备份脚本(含压缩与保留 7 天)
#!/bin/bash
set -e
BACKUP_DIR=“/backup/mongodb”
DATE=$(date +%Y%m%d%H%M%S)
OUT_DIR=“$BACKUP_DIR/$DATE”
mkdir -p “$OUT_DIR”
mongodump --host localhost --port 27017 --out “$OUT_DIR”
tar -czvf “$BACKUP_DIR/backup-$DATE.tar.gz” -C “$OUT_DIR” .
rm -rf “$OUT_DIR”
保留最近 7 天
find “$BACKUP_DIR” -name “backup-*.tar.gz” -mtime +7 -delete
echo “Backup $DATE completed.”
- 定时任务(每天 02:00 执行):
0 2 * * * /usr/bin/bash /usr/local/bin/backup_mongodb.sh >> /var/log/mongodb-backup.log 2>&1
- 建议:为脚本添加锁文件避免并发;将日志接入 logrotate;保留策略可按“7 天本地 + 每周归档长期保存”执行。
五 恢复与验证
- 基本恢复(目录备份)
mongorestore /backup/mongodb/2025…/mydb
- 压缩包恢复
mkdir -p /restore/2025…
tar -xzvf /backup/mongodb/backup-2025…tar.gz -C /restore/2025…
mongorestore /restore/2025…/2025…/mydb
- 时间点恢复(副本集)
mongorestore --oplogReplay /backup/mongodb/oplog-2025…
- 一致性建议:
- 单机/测试环境可在恢复前停止 mongod;生产环境优先采用在线恢复并评估对业务的影响。
- 恢复前先备份当前库;恢复后在业务低峰期校验集合行数、索引与关键业务查询。