温馨提示×

如何备份Debian的MongoDB

小樊
57
2026-07-07 01:35:57
栏目: 云计算

Debian 上备份 MongoDB,常见且推荐的做法是使用 mongodump 工具。下面按最常用场景给你一个完整、可操作的备份方案。


一、准备工作

1. 确认 MongoDB 已安装并运行

sudo systemctl status mongod

2. 安装备份工具(如未安装)

MongoDB 4.4+ 已不再自带 mongodump,需单独安装:

sudo apt update
sudo apt install mongodb-database-tools

验证:

mongodump --version

二、使用 mongodump 备份(推荐)

1. 基本备份命令

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

示例结果:

/backup/mongodb/2026-01-21/

2. 带认证备份(常见)

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

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

3. 只备份指定数据库

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

4. 只备份指定集合

mongodump --db mydb --collection users --out /backup/mongodb

三、压缩备份(节省空间 ✅)

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

优点:

  • 单文件
  • 体积小
  • 适合自动化脚本

四、恢复备份(对应 mongorestore

1. 普通恢复

mongorestore /backup/mongodb/2026-01-21

2. 恢复压缩文件

mongorestore --archive=/backup/mongodb/2026-01-21.gz --gzip

3. 恢复指定数据库

mongorestore --db mydb /backup/mongodb/2026-01-21/mydb

五、自动化备份(生产环境推荐 ✅)

1. 创建备份脚本

sudo nano /usr/local/bin/mongo_backup.sh

内容示例:

#!/bin/bash
BACKUP_DIR="/backup/mongodb"
DATE=$(date +%F)

mongodump --archive=${BACKUP_DIR}/${DATE}.gz --gzip

# 保留最近 7 天
find $BACKUP_DIR -name "*.gz" -mtime +7 -delete

授权:

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

2. 加入 cron 定时任务

sudo crontab -e

每天凌晨 2 点备份:

0 2 * * * /usr/local/bin/mongo_backup.sh >> /var/log/mongo_backup.log 2>&1

六、备份注意事项(非常重要 ⚠️)

一致性

  • 单节点:直接 mongodump
  • 副本集:使用 --oplog(推荐)
mongodump --oplog --out /backup/mongodb

磁盘空间

  • 确保 /backup 有足够空间

权限

sudo mkdir -p /backup/mongodb
sudo chown mongodb:mongodb /backup/mongodb

七、什么时候不用 mongodump

场景 建议
大数据量(TB 级) 文件系统快照
副本集 --oplog
云环境 Atlas / 云备份

八、总结(最常用命令)

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

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

  • ✅ MongoDB 版本
  • ✅ 是否启用认证
  • ✅ 单节点 / 副本集
  • ✅ 数据量大小

我可以给你 定制一套生产级备份方案

0