Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

Backup i Recovery - ratowanie tributów po katastrofie

strażniku tributów! Konsul Caesar.js wie, że nawet najlepsze forty mogą lec w gruzach podczas oblężenia. Dlatego każdy mądry legionista ma plan ratowania swoich tributów!

Database Backup Strategy

1#!/bin/bash
2# backup-database.sh
3
4set -e
5
6DATABASE_URL=${DATABASE_URL}
7BACKUP_DIR="/backups"
8DATE=$(date +%Y%m%d_%H%M%S)
9BACKUP_NAME="legionariusze_legion_backup_${DATE}.sql"
10
11# Create backup
12echo "Creating database backup..."
13pg_dump $DATABASE_URL > $BACKUP_DIR/$BACKUP_NAME
14
15# Compress backup
16gzip $BACKUP_DIR/$BACKUP_NAME
17
18# Upload to S3
19aws s3 cp $BACKUP_DIR/${BACKUP_NAME}.gz s3://legionariusze-legion-backups/
20
21# Cleanup old backups (keep last 7 days)
22find $BACKUP_DIR -name "*.gz" -mtime +7 -delete
23
24echo "Backup completed: ${BACKUP_NAME}.gz"

Disaster Recovery Plan

1// Recovery service
2@Injectable()
3export class RecoveryService {
4 async restoreFromBackup(backupFile: string) {
5 // 1. Download backup from S3
6 const backup = await this.downloadBackup(backupFile);
7 
8 // 2. Create new database
9 await this.createRecoveryDatabase();
10 
11 // 3. Restore data
12 await this.restoreData(backup);
13 
14 // 4. Verify integrity
15 await this.verifyDataIntegrity();
16 
17 // 5. Switch traffic
18 await this.switchTraffic();
19 }
20}
Przejdź do CodeWorlds