温馨提示×

MongoDB在Debian怎么备份

小樊
49
2026-07-18 09:33:34
栏目: 云计算

Debian 上备份 MongoDB,常见且推荐的方式有 官方工具 mongodump文件系统快照。下面按实际使用场景给你一份完整说明。


一、使用 mongodump 备份(最常用 ✅)

1️⃣ 安装 MongoDB 工具

Debian 上 MongoDB 6+ 之后,mongodump 已不在 mongodb-org-server 中,需要单独安装:

sudo apt update
sudo apt install mongodb-database-tools

验证:

mongodump --version

2️⃣ 备份所有数据库

mongodump --out /data/backup/mongodb/$(date +%Y%m%d)

默认连接:

  • host:localhost
  • port:27017

3️⃣ 备份指定数据库

mongodump --db mydb --out /data/backup/mongodb/mydb_$(date +%Y%m%d)

4️⃣ 带认证备份(常见 ⚠️)

如果 MongoDB 开启了用户名密码:

mongodump \
  --host 127.0.0.1 \
  --port 27017 \
  --username admin \
  --password 'your_password' \
  --authenticationDatabase admin \
  --out /data/backup/mongodb/$(date +%Y%m%d)

5️⃣ 压缩备份(推荐)

mongodump --archive=/data/backup/mongo_$(date +%Y%m%d).archive --gzip

二、恢复数据(mongorestore)

恢复整个备份

mongorestore /data/backup/mongodb/20260121

恢复指定库

mongorestore --db mydb /data/backup/mongodb/mydb_20260121/mydb

恢复压缩文件

mongorestore --archive=/data/backup/mongo_20260121.archive --gzip

三、使用系统 cron 自动备份(生产常用 ⏰)

1️⃣ 创建备份脚本

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

2️⃣ 添加到 cron

crontab -e

每天凌晨 2 点备份:

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

四、使用文件系统快照(高级 / 大数据量)

适合 TB 级数据,但要求:

  • 使用 LVM / ZFS
  • MongoDB 开启 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 快照
✅ 一定要定期 测试恢复


六、常见问题

❓ mongodump 卡住?

  • 检查磁盘空间
  • 数据库是否过大
  • 是否锁表

❓ 备份文件在哪?

ls /data/backup/mongodb

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

  • MongoDB 版本
  • 数据量大小
  • 是否开启认证
  • 是否生产环境

我可以帮你定制 最合适的备份方案 + 脚本

0