在 CentOS 下备份 MongoDB,常用方式有以下几种,按使用频率从高到低介绍:
mongodump 备份(最常用)mongodump --out=/data/backup/mongodb/$(date +%F)
mongodump \
--host 127.0.0.1 \
--port 27017 \
--username admin \
--password 'yourpassword' \
--authenticationDatabase admin \
--out=/data/backup/mongodb/$(date +%F)
mongodump --db mydb --out=/data/backup/mydb
mongodump --db mydb --collection user --out=/data/backup/user
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
适合大数据量、对一致性要求极高的场景。
/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
crontab -e
0 2 * * * /root/mongo_backup.sh
如果你愿意,我可以:
你现在的 MongoDB 是单机还是集群?