MongoDB在Linux上的备份与恢复最佳实践
一 备份策略选型
二 自动化与存储管理
#!/bin/bash
BACKUP_DIR="/backup/mongodb"
DATE=$(date +%Y%m%d%H%M%S)
mkdir -p "$BACKUP_DIR/$DATE"
mongodump --out "$BACKUP_DIR/$DATE" --gzip >> "$BACKUP_DIR/backup.log" 2>&1
tar -czf "$BACKUP_DIR/${DATE}.tar.gz" -C "$BACKUP_DIR" "$DATE"
rm -rf "$BACKUP_DIR/$DATE"
echo "$(date): Backup completed: $BACKUP_DIR/${DATE}.tar.gz" >> "$BACKUP_DIR/backup.log"
使用 crontab 每天 02:00 执行:0 2 * * * /data/backup/mongodb_backup.sh。find /backup/mongodb -type f -mtime +7 -delete。三 全量与增量备份操作要点
mongodump --db mydb --out /backup/mongodb --gzipmongodump --db mydb --collection users --out /backup/mongodb --gzipmongodump --host localhost --port 27017 --username admin --password '******' --authenticationDatabase admin --out /backup/mongodb --gzipmongodump --oplog --out /backup/mongodb_incremental(确保实例为 副本集 且 oplog 可用)systemctl stop mongod && cp -r /var/lib/mongodb /backup/mongodb_physical && systemctl start mongod四 恢复流程与验证
mongorestore --db mydb /backup/mongodb/mydbmongorestore --db test /backup/mongodb/mydbmongorestore --gzip --archive=/path/to/backup/mongo_backup.gzsystemctl stop mongod && cp -r /backup/mongodb_physical /var/lib/mongodb && systemctl start mongod五 生产环境注意事项与故障应对