一、备份配置
-
安装工具
确保已安装mongodb-org-tools(含mongodump和mongorestore):sudo apt update && sudo apt install -y mongodb-org-tools -
全量备份
- 备份整个数据库到指定目录:
mongodump --host localhost --port 27017 --out /path/to/backup/full_$(date +%Y%m%d) - 压缩备份文件(节省空间):
tar -czvf /path/to/backup/full_$(date +%Y%m%d).tar.gz /path/to/backup/full_$(date +%Y%m%d)
- 备份整个数据库到指定目录:
-
增量备份
基于oplog备份自上次全量备份后的变更(需启用副本集):mongodump --host localhost --port 27017 --since "2025-01-01T00:00:00Z" --out /path/to/backup/incremental -
自动化备份(Cron脚本)
创建定时任务,例如每日凌晨2点备份:# 编辑crontab crontab -e # 添加以下内容(需替换为实际路径和用户) 0 2 * * * /usr/local/bin/mongodb_backup.sh >> /var/log/mongodb_backup.log 2>&1脚本示例(含压缩和删除旧备份):
#!/bin/bash BACKUP_DIR="/backups/mongodb" DATE=$(date +%Y%m%d) mkdir -p $BACKUP_DIR mongodump --out $BACKUP_DIR/$DATE tar -czvf $BACKUP_DIR/$DATE.tar.gz $BACKUP_DIR/$DATE rm -rf $BACKUP_DIR/$DATE find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -exec rm {} \;
二、恢复配置
-
全量恢复
mongorestore --host localhost --port 27017 /path/to/backup/full_20250819 -
增量恢复
先恢复全量备份,再重放oplog:mongorestore --oplogReplay /path/to/backup/incremental -
恢复单个数据库/集合
- 恢复指定数据库:
mongorestore --db mydb /path/to/backup/mydb - 恢复指定集合:
mongorestore --db mydb --collection users /path/to/backup/mydb/users
- 恢复指定数据库:
-
注意事项
- 恢复前需停止MongoDB服务:
sudo systemctl stop mongod - 恢复后重启服务:
sudo systemctl start mongod - 定期验证备份有效性(如使用
mongorestore --dryRun模拟恢复)。
- 恢复前需停止MongoDB服务: