在 CentOS 上备份 MongoDB,常见做法有 mongodump 逻辑备份、文件系统/快照备份、副本集延迟节点备份 等。下面以最常用、最安全的 mongodump + cron 定时备份 为例说明。
# CentOS 7 示例(如已安装可跳过)
sudo yum install -y mongodb-org-tools
mongodump \
--host 127.0.0.1 \
--port 27017 \
--username admin \
--password 'yourpassword' \
--authenticationDatabase admin \
--out /data/backup/mongodb/$(date +%F)
如果是 无认证:
mongodump --out /data/backup/mongodb/$(date +%F)
mongodump --db mydb --out /data/backup/mydb
mongodump --db mydb --gzip --out /data/backup/mydb_gzip
vi /usr/local/bin/mongo_backup.sh
内容示例:
#!/bin/bash
BACKUP_DIR=/data/backup/mongodb
DATE=$(date +%F)
mongodump --host 127.0.0.1 --port 27017 \
--username admin --password 'yourpassword' \
--authenticationDatabase admin \
--gzip --out $BACKUP_DIR/$DATE
# 保留7天
find $BACKUP_DIR -type d -mtime +7 -exec rm -rf {} \;
chmod +x /usr/local/bin/mongo_backup.sh
crontab -e
每天凌晨 2 点:
0 2 * * * /usr/local/bin/mongo_backup.sh
mongorestore \
--host 127.0.0.1 \
--username admin \
--password 'yourpassword' \
--authenticationDatabase admin \
--gzip /data/backup/mongodb/2026-01-21
mongorestore --db mydb --gzip /data/backup/mydb_gzip/mydb
systemctl stop mongod
cp -r /var/lib/mongo /data/backup/mongo_data
systemctl start mongod
✅ 每天全量 + 定期校验
✅ 备份异地 / 对象存储
✅ 定期演练恢复
✅ 开启 --oplog 用于时间点恢复(副本集)
如果你告诉我:
我可以给你更合适的备份方案。