linux

MongoDB在Linux环境中的备份策略

小樊
36
2025-11-24 19:20:44
栏目: 云计算

MongoDB在Linux环境中的备份策略

一 策略总览与选择

二 备份方式与适用场景对比

方式 工具/机制 优点 局限 典型场景
逻辑备份 mongodump(可加 –gzip 灵活、可按库/集合/查询导出、便于迁移与部分恢复 导出/导入开销较大,大数据量较慢 日常备份、跨版本迁移、开发/测试数据供给
物理备份 拷贝 dbPath(停机或快照) 速度快、恢复快、适合大体量 需一致性保障,跨版本/跨平台受限 大库、低RTO要求、同版本恢复
实时可用性 副本集 从节点导出 不影响主节点、近实时 非真正备份,仍需定期落盘/快照 高可用架构、降低主库备份压力
第三方/云 PBMAtlas 备份 PBM支持增量;Atlas一键化 依赖产品能力/成本 企业级备份、云上托管场景

三 自动化备份脚本与定时任务

#!/usr/bin/env bash
set -Eeuo pipefail

DUMP="/usr/bin/mongodump"                 # mongodump路径
OUT_DIR="/data/backup/mongo/tmp"         # 临时导出目录
TAR_DIR="/data/backup/mongo/archive"    # 归档目录
DATE=$(date +%Y_%m_%d_%H_%M)
DB_USER="backup_user"
DB_PASS="StrongPassw0rd!"
DAYS=15
TAR_BAK="mongodb_bak_${DATE}.tar.gz"

# 创建目录
mkdir -p "$OUT_DIR" "$TAR_DIR"

# 全库导出(可按需改为 -d 指定库)
"$DUMP" \
  --host 127.0.0.1 --port 27017 \
  --username "$DB_USER" --password "$DB_PASS" \
  --authenticationDatabase "admin" \
  --out "$OUT_DIR/$DATE" \
  --gzip

# 打包归档
tar -zcvf "$TAR_DIR/$TAR_BAK" -C "$OUT_DIR" "$DATE"

# 清理临时导出
rm -rf "$OUT_DIR/$DATE"

# 清理过期归档
find "$TAR_DIR" -name "mongodb_bak_*.tar.gz" -mtime +$DAYS -delete

echo "Backup finished: $TAR_DIR/$TAR_BAK"
# 编辑当前用户crontab
crontab -e
# 每天02:00执行,标准输出/错误重定向到日志
0 2 * * * /usr/bin/bash /data/script/mongo_backup.sh >>/var/log/mongo_backup.log 2>&1

四 恢复流程与关键参数

五 企业级增强与注意事项

0
看了该问题的人还看了