温馨提示×

mongodb在debian如何备份

小樊
41
2026-10-05 09:28:08
栏目: 云计算

在 Debian 上备份 MongoDB,常见做法有 mongodump 逻辑备份、文件系统/快照备份、以及自动化脚本+定时任务。下面按实用程度给你一套方案。


一、使用 mongodump 进行逻辑备份(最常用)

1. 安装 MongoDB 工具

Debian 通常分开打包:

sudo apt update
sudo apt install mongodb-org-tools

(或 mongodb-database-tools,取决于版本)

验证:

mongodump --version

2. 基本备份命令

mongodump --out /backup/mongo/$(date +%F)

如果是鉴权模式:

mongodump \
  --host 127.0.0.1 \
  --port 27017 \
  --username admin \
  --password '你的密码' \
  --authenticationDatabase admin \
  --out /backup/mongo/$(date +%F)

3. 压缩备份(推荐)

mongodump --archive=/backup/mongo/$(date +%F).archive --gzip

恢复示例:

mongorestore --archive=/backup/mongo/xxx.archive --gzip

二、Debian 定时自动备份(cron)

1. 编写备份脚本

/usr/local/bin/mongo_backup.sh

#!/bin/bash
BACKUP_DIR=/backup/mongo
DATE=$(date +%F)
mongodump --archive=$BACKUP_DIR/$DATE.archive --gzip
# 保留7天
find $BACKUP_DIR -name "*.archive" -mtime +7 -delete

赋予权限:

chmod +x /usr/local/bin/mongo_backup.sh

2. 加入 cron

crontab -e

每天凌晨 2 点:

0 2 * * * /usr/local/bin/mongo_backup.sh

三、文件系统级备份(适合大库)

前提

  • 单机 MongoDB
  • 使用 --dbpath 指定的数据目录(如 /var/lib/mongodb)

步骤

  1. 锁库(可选):
db.fsyncLock()
  1. 拷贝数据目录:
cp -a /var/lib/mongodb /backup/mongo-data
  1. 解锁:
db.fsyncUnlock()

或使用 LVM / 云快照(推荐,几乎无锁)。


四、生产建议

✅ 推荐组合:

  • mongodump + gzip + cron
  • 备份传到远程(rsync / S3)
  • 定期测试恢复

❌ 不推荐:

  • 直接 cp 运行中的 dbpath(易损坏)

如果你愿意,可以告诉我:

  • MongoDB 版本
  • 是否开启鉴权
  • 单机还是副本集

我可以给你一份可直接用的 Debian 备份脚本。

0 踩