温馨提示×

centos下怎么备份mongodb

小樊
35
2026-10-20 10:09:35
栏目: 云计算

在 CentOS 下备份 MongoDB,常用方式有以下几种,按使用频率从高到低介绍:


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

1. 基本全库备份

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

2. 指定用户、密码、端口

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

3. 只备份某个数据库

mongodump --db mydb --out=/data/backup/mydb

4. 只备份某个集合

mongodump --db mydb --collection user --out=/data/backup/user

二、恢复数据(mongorestore)

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

带认证恢复:

mongorestore \
  --username admin \
  --password 'yourpassword' \
  --authenticationDatabase admin \
  /data/backup/mongodb

三、使用 mongoexport(导出 JSON / CSV)

适合单表导出,不是完整备份:

mongoexport --db mydb --collection user --out=user.json

四、物理文件备份(冷备份)

⚠️ 必须停止 MongoDB 服务

systemctl stop mongod
cp -r /var/lib/mongo /data/backup/mongo_data
systemctl start mongod

适合大数据量、对一致性要求极高的场景。


五、定时自动备份(crontab)

1. 编写备份脚本

/root/mongo_backup.sh

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

mongodump --out=$BACKUP_DIR/$DATE

# 保留7天
find $BACKUP_DIR -type d -mtime +7 -exec rm -rf {} \;
chmod +x /root/mongo_backup.sh

2. 加入定时任务

crontab -e
0 2 * * * /root/mongo_backup.sh

六、生产建议

  • ✅ 定期备份 + 异地存储(如 OSS / S3)
  • ✅ 开启 MongoDB 副本集(热备更稳)
  • ✅ 定期做恢复演练
  • ❌ 不要只依赖物理文件备份

如果你愿意,我可以:

  • 给你一套 生产级备份脚本
  • 帮你配置 副本集 + 延迟节点备份
  • 或针对 Docker / 集群环境 写方案

你现在的 MongoDB 是单机还是集群?

0 踩