温馨提示×

怎样备份debian mongodb

小樊
46
2026-09-02 09:47:58
栏目: 云计算

在 Debian 上备份 MongoDB,常见做法有 mongodump 逻辑备份、文件系统/快照备份 和 MongoDB Atlas/副本集备份。下面给你最常用、最稳妥的方式。


一、使用 mongodump(推荐,最通用)

1. 安装 MongoDB 工具

Debian 通常分开打包:

sudo apt update
sudo apt install mongodb-database-tools

验证:

mongodump --version

2. 备份整个实例

mongodump \
  --host 127.0.0.1 \
  --port 27017 \
  --out /backup/mongodb/$(date +%F)

如果是 认证用户:

mongodump \
  --uri="mongodb://user:password@127.0.0.1:27017/?authSource=admin" \
  --out /backup/mongodb/$(date +%F)

3. 只备份某个数据库

mongodump --db mydb --out /backup/mydb

4. 压缩备份(节省空间)

mongodump --db mydb --archive=/backup/mydb.archive.gz --gzip

二、恢复备份(mongorestore)

mongorestore \
  --uri="mongodb://user:password@127.0.0.1:27017/?authSource=admin" \
  /backup/mongodb/2026-01-21

或恢复压缩文件:

mongorestore --gzip --archive=/backup/mydb.archive.gz

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

方法 1:停止 MongoDB 后拷贝数据目录

sudo systemctl stop mongod
sudo rsync -a /var/lib/mongodb /backup/mongodb-data
sudo systemctl start mongod

⚠️ 会短暂中断服务


方法 2:LVM / 云快照(推荐生产环境)

  • 冻结写操作:
mongo --eval "db.fsyncLock()"
  • 做快照
  • 解锁:
mongo --eval "db.fsyncUnlock()"

四、自动定时备份(cron 示例)

sudo crontab -e

每天凌晨 2 点:

0 2 * * * mongodump --uri="mongodb://user:pass@127.0.0.1:27017/?authSource=admin" --out=/backup/mongodb/$(date +\%F)

五、备份建议

✅ 定期测试恢复
✅ 备份文件异地存储(rsync / 对象存储)
✅ 大库用副本集隐藏节点备份
✅ 开启 --oplog 可做时间点恢复(PITR)


如果你愿意,我可以:

  • 给你一个 完整备份脚本
  • 教你 Debian + MongoDB 时间点恢复
  • 或针对 Docker / 集群环境 给方案

0 踩