在 Debian 上备份 MongoDB,常见且推荐的方式有 官方工具 mongodump 和 文件系统快照。下面按实际使用场景给你一份完整说明。
mongodump 备份(最常用 ✅)Debian 上 MongoDB 6+ 之后,mongodump 已不在 mongodb-org-server 中,需要单独安装:
sudo apt update
sudo apt install mongodb-database-tools
验证:
mongodump --version
mongodump --out /data/backup/mongodb/$(date +%Y%m%d)
默认连接:
localhost27017mongodump --db mydb --out /data/backup/mongodb/mydb_$(date +%Y%m%d)
如果 MongoDB 开启了用户名密码:
mongodump \
--host 127.0.0.1 \
--port 27017 \
--username admin \
--password 'your_password' \
--authenticationDatabase admin \
--out /data/backup/mongodb/$(date +%Y%m%d)
mongodump --archive=/data/backup/mongo_$(date +%Y%m%d).archive --gzip
mongorestore /data/backup/mongodb/20260121
mongorestore --db mydb /data/backup/mongodb/mydb_20260121/mydb
mongorestore --archive=/data/backup/mongo_20260121.archive --gzip
sudo nano /usr/local/bin/mongo_backup.sh
内容示例:
#!/bin/bash
BACKUP_DIR=/data/backup/mongodb
DATE=$(date +%Y%m%d)
mongodump --archive=${BACKUP_DIR}/mongo_${DATE}.archive --gzip
授权:
chmod +x /usr/local/bin/mongo_backup.sh
crontab -e
每天凌晨 2 点备份:
0 2 * * * /usr/local/bin/mongo_backup.sh
适合 TB 级数据,但要求:
journal# 1. 锁定数据库
mongo --eval "db.fsyncLock()"
# 2. 创建快照
lvcreate --size 1G --snapshot --name mongo-snap /dev/vg0/mongo
# 3. 解锁
mongo --eval "db.fsyncUnlock()"
# 4. 挂载快照并拷贝
⚠️ 不推荐新手直接使用。
✅ 小中型数据 → mongodump
✅ 生产环境 → 定时备份 + 异地存储
✅ 大数据量 → mongodump + 分片 or 快照
✅ 一定要定期 测试恢复
ls /data/backup/mongodb
如果你愿意,可以告诉我:
我可以帮你定制 最合适的备份方案 + 脚本。