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

321 lines
8.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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:**
```bash
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:**
```bash
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ă:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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:**
```bash
# 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ă DBID = 1363569330
- Re-transferă backup de pe PRIMARY
- Verifică permissions (oracle:dba)
---
### **Problem 3: "Backup file corrupted"**
**Verificări:**
```bash
# 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