- Add comprehensive Oracle backup and DR strategy documentation - Add RMAN backup scripts (full and incremental) - Add PowerShell transfer scripts for DR site - Add bash restore and verification scripts - Reorganize Oracle documentation structure - Add Proxmox troubleshooting guide for VM 201 HA errors and NFS storage issues 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
8.0 KiB
Verificare Capability Disaster Recovery - Oracle ROA
Scop: Verificare că backup-urile de pe DR server pot fi restaurate cu SUCCESS
📋 DOUĂ TIPURI DE VERIFICARE
1. Verificare ZILNICĂ (Quick Check) - 30 secunde
Script: 06_quick_verify_backups.sh
Frecvență: Zilnic (automat via cron)
Durată: <1 minut
Ce verifică:
- ✅ Backup-urile există pe DR
- ✅ Ultimul backup e recent (<30 ore)
- ✅ Fișierele backup sunt readable (integrity check rapid)
- ✅ Spațiu disk disponibil (>20GB free)
- ✅ Inventar complet backup-uri
Rulare:
ssh root@10.0.20.37
/opt/oracle/scripts/dr/06_quick_verify_backups.sh
Output așteptat:
✅ Backup directory: OK
✅ Backup files: 1 present
✅ Latest backup age: 5h (threshold: 30h)
✅ Disk space: 45GB free
✅ File integrity: OK
2. Verificare LUNARĂ (Full Test Restore) - 45-75 minute
Script: 05_test_restore_dr.sh
Frecvență: LUNAR (prima Duminică)
Durată: 45-75 minute
Ce face:
- ✅ RESTORE complet database din backup
- ✅ RECOVER cu archived logs
- ✅ OPEN database în read-write mode
- ✅ Verificare integritate date
- ✅ Măsurare RTO (Recovery Time Objective)
- ✅ Generare raport detaliat
Rulare:
ssh root@10.0.20.37
/opt/oracle/scripts/dr/05_test_restore_dr.sh
IMPORTANT:
- ✅ NU afectează production database (ROA)
- ✅ Creează database temporar (ROATEST)
- ✅ Cleanup automat după test
- ✅ Durează 45-75 minute (așteaptă să se termine!)
🚀 SETUP AUTOMAT - Cron Jobs
Setup verificare zilnică:
# Pe DR Server (10.0.20.37)
ssh root@10.0.20.37
# Editare crontab
crontab -e
# Adaugă această linie (rulează zilnic la 09:00 AM)
0 9 * * * /opt/oracle/scripts/dr/06_quick_verify_backups.sh >> /opt/oracle/logs/dr/cron_verify.log 2>&1
Setup test restore lunar:
# Adaugă în crontab (prima Duminică a lunii la 10:00 AM)
0 10 1-7 * 0 /opt/oracle/scripts/dr/05_test_restore_dr.sh >> /opt/oracle/logs/dr/cron_test.log 2>&1
Explicație:
0 10= ora 10:001-7= zilele 1-7 ale lunii* 0= orice lună, dar doar Duminica (0 = Sunday)- Rezultat: rulează prima Duminică între 1-7 ale fiecărei luni
📊 INTERPRETARE REZULTATE
Verificare Zilnică - Scenarii:
✅ SUCCESS (Normal):
✅ Backup files: 1 present
✅ Latest backup age: 8h (threshold: 30h)
✅ Disk space: 45GB free
Acțiune: NONE - totul e OK
⚠️ WARNING (Minor Issues):
⚠️ Backup is getting old (>26h)
⚠️ Disk space getting low (<20GB)
Acțiune: Investigare - de ce nu a venit backup nou?
❌ ERROR (Critica):
❌ Latest backup is too old: 35 hours
❌ No backup files found!
❌ DISK SPACE LOW! (8GB free)
❌ BACKUP FILE CORRUPTED!
Acțiune IMEDIATĂ:
- Verifică pe PRIMARY dacă backup-ul a rulat azi
- Verifică transfer script (logs în
D:\rman_backup\logs\) - Verifică conexiune SSH către DR
- Rulează manual transfer dacă e nevoie
Test Restore Lunar - Scenarii:
✅ SUCCESS:
✅ Phase 1: RMAN RESTORE - SUCCESS
✅ Phase 2: RMAN RECOVER - SUCCESS
✅ Phase 3: DATABASE OPEN - SUCCESS
✅ Phase 4: DATA INTEGRITY - VERIFIED
✅ Phase 5: RTO CALCULATION - MEASURED
Total duration: 52 minutes 34 seconds
✅ RTO GOOD: Under 60 minutes
Concluzie: DR capability VALIDAT - backup-urile funcționează!
❌ FAILURE:
❌ RMAN RESTORE failed!
ERROR: RMAN-06023: no backup or copy found
Cauze posibile:
- Backup-uri corupte sau lipsă
- DBID incorect
- Path-uri backup incorecte
Acțiune IMEDIATĂ:
- Verifică că backup-urile există:
ls -lh /opt/oracle/backups/primary/ - Verifică integritatea:
md5sum /opt/oracle/backups/primary/*.BKP - Re-transferă backup de pe PRIMARY
- Rulează din nou test restore
📈 METRICI IMPORTANTE
RTO (Recovery Time Objective):
| Durată Test | Status | Acțiune |
|---|---|---|
| <45 min | ✅ EXCELLENT | Perfect! |
| 45-60 min | ✅ GOOD | Acceptabil |
| 60-75 min | ⚠️ ACCEPTABLE | Monitorizează |
| >75 min | ❌ TOO HIGH | Optimizare necesară! |
Target: 45-75 minute
Backup Age (Vârsta ultimului backup):
| Vârstă | Status | Acțiune |
|---|---|---|
| <24h | ✅ FRESH | Perfect - backup de ieri |
| 24-26h | ✅ OK | Normal - backup de alaltăieri |
| 26-30h | ⚠️ OLD | Investigare - de ce întârziere? |
| >30h | ❌ CRITICAL | ALERT - lipsește backup! |
Target: <26 ore (backup de azi sau ieri)
🐛 TROUBLESHOOTING
Problem 1: "No backup files found"
Verificări:
# Pe DR
ls -la /opt/oracle/backups/primary/
# Verifică transfer log pe PRIMARY
# D:\rman_backup\logs\transfer_YYYYMMDD.log
# Test manual transfer (pe PRIMARY)
PowerShell -File D:\rman_backup\transfer_to_dr.ps1
Soluții:
- Verifică SSH keys funcționează
- Verifică task scheduler rulează
- Rulează manual transfer
Problem 2: "Test restore failed - RMAN-06023"
Verificări:
# Pe DR - verifică backup files
find /opt/oracle/backups/primary -name "*.BKP" -ls
# Verifică DBID corect (ar trebui să fie 1363569330)
grep DBID /opt/oracle/scripts/dr/05_test_restore_dr.sh
Soluții:
- Verifică că DBID = 1363569330
- Re-transferă backup de pe PRIMARY
- Verifică permissions (oracle:dba)
Problem 3: "Backup file corrupted"
Verificări:
# Pe DR - checksum backup
md5sum /opt/oracle/backups/primary/*.BKP
# Compară cu checksum de pe PRIMARY
# (ar trebui să fie identice)
# Test citire fișier
head -c 1M /opt/oracle/backups/primary/*.BKP > /dev/null
tail -c 1M /opt/oracle/backups/primary/*.BKP > /dev/null
Soluții:
- Re-transfer backup de pe PRIMARY
- Verifică network stability
- Verifică disk health pe DR
✅ CHECKLIST VERIFICARE LUNARĂ
Prima Duminică a lunii:
- Rulează test restore:
/opt/oracle/scripts/dr/05_test_restore_dr.sh - Verifică RTO < 75 minute
- Verifică database se deschide cu SUCCESS
- Verifică integritate date (object count, tablespaces)
- Review raport:
/opt/oracle/logs/dr/test_report_YYYYMMDD.txt - Documentează orice issue găsit
- Update documentație dacă e necesar
- Notifică management despre rezultat test
📞 ESCALATION
Severity Levels:
| Issue | Severity | Response Time | Escalate To |
|---|---|---|---|
| Daily check failed | P3 | 4 hours | DBA Team |
| Backup >30h old | P2 | 2 hours | DBA + Manager |
| Test restore failed | P2 | 2 hours | DBA + Manager |
| No backups found | P1 | Immediate | DBA + Management |
| RTO >90 min | P3 | Next day | DBA Team |
📚 LOGS LOCATION
| Tip | Location |
|---|---|
| Daily Verify | /opt/oracle/logs/dr/verify_YYYYMMDD.log |
| Test Restore | /opt/oracle/logs/dr/test_restore_YYYYMMDD_HHMMSS.log |
| Test Report | /opt/oracle/logs/dr/test_report_YYYYMMDD.txt |
| Cron Jobs | /opt/oracle/logs/dr/cron_*.log |
🎯 BEST PRACTICES
- ✅ Rulează verificare zilnică automat (cron)
- ✅ Rulează test restore LUNAR (obligatoriu!)
- ✅ Review logs săptămânal
- ✅ Documentează issues găsite
- ✅ Test manual după orice modificare în backup strategy
- ✅ Măsoară RTO și optimizează dacă crește
- ✅ Păstrează rapoarte pentru audit trail
IMPORTANT:
Un backup NETESTAT = NU ai backup!
Singurul mod de a fi sigur că poți face disaster recovery e să TESTEZI restore-ul lunar!
Versiune: 1.0 Data: 2025-10-08 Status: Production Ready