Files
ROMFASTSQL/oracle/standby-server-scripts/VERIFICARE_DR.md
Marius d5bfc6b5c7 Add Oracle DR standby server scripts and Proxmox troubleshooting docs
- 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>
2025-10-08 13:37:33 +03:00

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:00
  • 1-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Ă:

  1. Verifică pe PRIMARY dacă backup-ul a rulat azi
  2. Verifică transfer script (logs în D:\rman_backup\logs\)
  3. Verifică conexiune SSH către DR
  4. 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Ă:

  1. Verifică că backup-urile există: ls -lh /opt/oracle/backups/primary/
  2. Verifică integritatea: md5sum /opt/oracle/backups/primary/*.BKP
  3. Re-transferă backup de pe PRIMARY
  4. 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

  1. Rulează verificare zilnică automat (cron)
  2. Rulează test restore LUNAR (obligatoriu!)
  3. Review logs săptămânal
  4. Documentează issues găsite
  5. Test manual după orice modificare în backup strategy
  6. Măsoară RTO și optimizează dacă crește
  7. 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