全量备份
使用 mongodump
命令备份所有数据库,可指定压缩或输出到指定目录,例如:
mongodump --out /backup/mongodb/$(date +%Y%m%d%H%M%S) --gzip
增量备份
--oplog
参数(需在副本集环境):mongodump --oplog --out /backup/incremental/$(date +%Y%m%d%H%M%S)
rsync
同步数据文件(适用于物理备份):rsync -av --delete /var/lib/mongo/ /backup/mongodb/incremental/
定时备份
通过 crontab
设置周期性任务,例如每天凌晨2点执行全量备份:
0 2 * * * mongodump --out /backup/mongodb/$(date +%Y%m%d%H%M%S) --gzip
备份存储与验证
scp/rsync
)。mongorestore --dryRun
测试备份可恢复性。全量恢复
sudo systemctl stop mongod
。tar -xzvf /backup/mongodb/backup.tar.gz -C /
mv /data/db /var/lib/mongo # 确保路径正确
sudo systemctl start mongod
。增量恢复
oplog
文件:mongorestore --oplogReplay /backup/incremental/$(date +%Y%m%d%H%M%S)
恢复指定数据库/集合
mongorestore --db test --collection users /backup/mongodb/test/users.bson
参考来源:[1,2,3,4,5,6,7,8,10,11,12]