- 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>
22 KiB
🚀 GHID IMPLEMENTARE DR BACKUP - PAS CU PAS
Oracle ROA Contabilitate: PRIMARY (10.0.20.36) → DR (10.0.20.37)
Data implementare: 2025-10-08 Status: Ready to Execute Durată totală estimată: 60-90 minute
✅ PRE-VERIFICĂRI (COMPLETATE)
| Verificare | Status | Detalii |
|---|---|---|
| DR Server operațional | ✅ | Container oracle-standby UP |
| Spațiu disk DR | ✅ | 93GB liberi (suficient) |
| Directoare DR | ✅ | /opt/oracle/backups/primary/ există |
| Script-uri DR | ✅ | full_dr_restore.sh instalat |
| Script-uri locale | ✅ | Toate scripturile pregătite |
| PRIMARY SSH access | ✅ | SSH pe port 22122 funcțional |
📋 PLAN IMPLEMENTARE
Implementarea se face în 4 FAZE:
FAZA 1: Setup SSH Keys (30 minute)
FAZA 2: Upgrade RMAN Backup Script (15 minute)
FAZA 3: Instalare Transfer Script (15 minute)
FAZA 4: Setup Task Scheduler (10 minute)
FAZA 5: Testing (30-60 minute)
🔐 FAZA 1: SETUP SSH KEYS (30 minute)
Pas 1.1: Conectare la PRIMARY server
# CONECTEAZĂ-TE la PRIMARY server 10.0.20.36
# Folosește RDP sau SSH:
ssh -p 22122 romfast@10.0.20.36
# SAU deschide PowerShell direct pe PRIMARY
Pas 1.2: Verificare SSH client instalat
# În PowerShell pe PRIMARY:
Get-Command ssh
# Output așteptat:
# CommandType Name Version Source
# ----------- ---- ------- ------
# Application ssh.exe ... C:\Windows\System32\OpenSSH\ssh.exe
# Dacă SSH nu e instalat, instalează OpenSSH:
# Settings > Apps > Optional Features > Add OpenSSH Client
Pas 1.3: Generare SSH Key Pair
# Pe PRIMARY - în PowerShell ca Administrator (sau user Oracle)
# IMPORTANT: Rulează ca user-ul care va fi folosit pentru Task Scheduler
# Verifică user curent:
whoami
# Output: DOMAIN\Administrator sau DOMAIN\Oracle
# Generare SSH key:
ssh-keygen -t rsa -b 4096 -f "$env:USERPROFILE\.ssh\id_rsa" -N '""'
# Output așteptat:
# Generating public/private rsa key pair.
# Your identification has been saved in C:\Users\Administrator\.ssh\id_rsa
# Your public key has been saved in C:\Users\Administrator\.ssh\id_rsa.pub
Pas 1.4: Afișare și copiere Public Key
# Afișează public key:
Get-Content "$env:USERPROFILE\.ssh\id_rsa.pub"
# Output (un exemplu):
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC... user@hostname
# COPIAZĂ ÎNTREGUL OUTPUT (toată linia - e lungă!)
Pas 1.5: Adăugare Public Key pe DR Server
OPȚIUNEA A: Direct din PRIMARY (recomandat - mai rapid)
# Pe PRIMARY - trimite direct cheia pe DR:
$pubKey = Get-Content "$env:USERPROFILE\.ssh\id_rsa.pub"
# Conectare la DR și adăugare key (o să ceară parolă ROOT o singură dată):
ssh root@10.0.20.37 "mkdir -p /root/.ssh && chmod 700 /root/.ssh && echo '$pubKey' >> /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys"
# Dacă apare eroare "Permission denied", rulează manual Opțiunea B de mai jos
OPȚIUNEA B: Manual pe DR Server (backup plan)
# Deschide o nouă sesiune SSH către DR:
ssh root@10.0.20.37
# Creare director SSH:
mkdir -p /root/.ssh
chmod 700 /root/.ssh
# Editare authorized_keys:
nano /root/.ssh/authorized_keys
# PASTE cheia publică copiată la Pas 1.4 (click dreapta în terminal = paste)
# Salvează: Ctrl+X, apoi Y, apoi Enter
# Setare permissions:
chmod 600 /root/.ssh/authorized_keys
# Verificare:
cat /root/.ssh/authorized_keys
# Ar trebui să vezi cheia publică
# Exit din DR:
exit
Pas 1.6: Test Conexiune SSH Passwordless
# Pe PRIMARY - test conexiune FĂRĂ parolă:
ssh -i "$env:USERPROFILE\.ssh\id_rsa" -o "StrictHostKeyChecking=no" root@10.0.20.37 "echo 'SSH OK'"
# Output așteptat:
# SSH OK
# Dacă cere parolă = ceva nu e OK, verifică pașii anteriori!
# Dacă vezi "SSH OK" FĂRĂ să fi introdus parolă = SUCCESS! ✅
Pas 1.7: Verificare finală SSH pentru SYSTEM account
⚠️ IMPORTANT: Task Scheduler va rula ca SYSTEM account, deci trebuie să configurăm SSH keys pentru SYSTEM.
# Pe PRIMARY - rulează ca Administrator:
# Creează director SSH pentru SYSTEM account:
New-Item -ItemType Directory -Force -Path "C:\Windows\System32\config\systemprofile\.ssh"
# Copiază SSH keys de la user curent la SYSTEM:
Copy-Item "$env:USERPROFILE\.ssh\id_rsa*" "C:\Windows\System32\config\systemprofile\.ssh\"
# Verificare:
Test-Path "C:\Windows\System32\config\systemprofile\.ssh\id_rsa"
# Ar trebui să returneze: True
# Test conexiune ca SYSTEM (folosind PsExec dacă e disponibil):
# SAU lasă testarea pentru Task Scheduler la FAZA 4
📦 FAZA 2: UPGRADE RMAN BACKUP SCRIPT (15 minute)
Pas 2.1: Backup script vechi
# Pe PRIMARY:
# Verifică că scriptul existent există:
Test-Path "D:\rman_backup\rman_backup.txt"
# Ar trebui să returneze: True
# BACKUP scriptul vechi (IMPORTANT - safety!):
Copy-Item "D:\rman_backup\rman_backup.txt" "D:\rman_backup\rman_backup.txt.backup_$(Get-Date -Format 'yyyyMMdd_HHmmss')"
# Verificare backup creat:
Get-ChildItem "D:\rman_backup\rman_backup.txt.backup_*"
# Ar trebui să vezi fișierul backup
# OPȚIONAL - Afișează conținut script vechi pentru referință:
Get-Content "D:\rman_backup\rman_backup.txt"
Pas 2.2: Transfer script nou de pe WSL
# OPȚIUNEA A: Transfer direct din WSL mount point (dacă e accesibil):
Copy-Item "\\wsl$\Ubuntu\mnt\e\proiecte\ROMFASTSQL\oracle\standby-server-scripts\01_rman_backup_upgraded.txt" "D:\rman_backup\rman_backup.txt" -Force
# OPȚIUNEA B: Dacă PRIMARY nu are acces la WSL, copiază manual:
# 1. Pe WSL/local machine, deschide fișierul:
# cat /mnt/e/proiecte/ROMFASTSQL/oracle/standby-server-scripts/01_rman_backup_upgraded.txt
# 2. Copiază conținutul
# 3. Pe PRIMARY, editează:
# notepad D:\rman_backup\rman_backup.txt
# 4. ÎNLOCUIEȘTE tot conținutul cu cel copiat
# 5. Salvează (Ctrl+S)
CONȚINUT Script Nou (pentru referință - copiază asta dacă Opțiunea B):
RUN {
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO COMPRESSED BACKUPSET;
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
ALLOCATE CHANNEL ch2 DEVICE TYPE DISK;
# Full backup COMPRESSED + Archive logs (șterge logs după backup)
BACKUP AS COMPRESSED BACKUPSET
INCREMENTAL LEVEL 0
CUMULATIVE
DEVICE TYPE DISK
TAG 'DAILY_FULL_COMPRESSED'
DATABASE
INCLUDE CURRENT CONTROLFILE
PLUS ARCHIVELOG
DELETE INPUT;
# Backup SPFILE separat
BACKUP AS COMPRESSED BACKUPSET SPFILE;
# Verificare backup integrity IMEDIAT după creare
BACKUP VALIDATE CHECK LOGICAL DATABASE;
# Cleanup old backups (păstrează ultimele 2 - REDUNDANCY 2)
ALLOCATE CHANNEL FOR MAINTENANCE TYPE DISK;
DELETE NOPROMPT OBSOLETE DEVICE TYPE DISK;
RELEASE CHANNEL;
RELEASE CHANNEL ch1;
RELEASE CHANNEL ch2;
}
Pas 2.3: Verificare script nou instalat
# Pe PRIMARY:
# Afișează script nou:
Get-Content "D:\rman_backup\rman_backup.txt"
# Verifică că are:
# - REDUNDANCY 2 (la linia 2)
# - COMPRESSED BACKUPSET
# - PLUS ARCHIVELOG DELETE INPUT
# - BACKUP VALIDATE CHECK LOGICAL
Pas 2.4: Test RMAN backup upgraded (OPȚIONAL - ia timp!)
⚠️ ATENȚIE: Acest test va rula un backup complet (~20-30 minute). Recomandabil doar dacă ai timp SAU lasă să ruleze automat în noaptea următoare.
# Pe PRIMARY - dacă vrei să testezi ACUM:
cd D:\rman_backup
# Rulează manual backup-ul (durează 20-30 min):
.\rman_backup.bat
# Monitorizează în alt terminal:
# Tail la Oracle alert log pentru a vedea progresul
# SAU verifică mărimea fișierelor în FRA:
Get-ChildItem "C:\Users\Oracle\recovery_area\ROA\BACKUPSET" -Recurse -File |
Sort-Object LastWriteTime -Descending | Select-Object -First 10 |
Format-Table Name, @{L="Size(MB)";E={[math]::Round($_.Length/1MB,2)}}, LastWriteTime
# Ar trebui să vezi fișiere noi .BKP cu compression (mai mici decât înainte)
📤 FAZA 3: INSTALARE TRANSFER SCRIPT (15 minute)
Pas 3.1: Creare director logs
# Pe PRIMARY:
New-Item -ItemType Directory -Force -Path "D:\rman_backup\logs"
# Verificare:
Test-Path "D:\rman_backup\logs"
# Ar trebui să returneze: True
Pas 3.2: Transfer script PowerShell
# OPȚIUNEA A: Transfer direct din WSL:
Copy-Item "\\wsl$\Ubuntu\mnt\e\proiecte\ROMFASTSQL\oracle\standby-server-scripts\02_transfer_to_dr.ps1" "D:\rman_backup\transfer_to_dr.ps1" -Force
# OPȚIUNEA B: Dacă PRIMARY nu vede WSL, folosește transfer prin SSH:
# Pe WSL/local machine:
scp -P 22122 /mnt/e/proiecte/ROMFASTSQL/oracle/standby-server-scripts/02_transfer_to_dr.ps1 romfast@10.0.20.36:/d/rman_backup/
# Verificare pe PRIMARY:
Test-Path "D:\rman_backup\transfer_to_dr.ps1"
# Ar trebui să returneze: True
Pas 3.3: Verificare parametri script
# Pe PRIMARY - afișează header script:
Get-Content "D:\rman_backup\transfer_to_dr.ps1" -Head 15
# Verifică parametrii default:
# - SourceFRA = "C:\Users\Oracle\recovery_area\ROA" ✅
# - DRHost = "10.0.20.37" ✅
# - DRUser = "root" ✅
# - DRPath = "/opt/oracle/backups/primary" ✅
# - SSHKeyPath = "$env:USERPROFILE\.ssh\id_rsa" ✅
# - MaxBackupsOnDR = 1 ✅ (păstrează doar ultimul backup pe DR)
Pas 3.4: Test manual transfer script
⚠️ ATENȚIE: Acest test va transfera backup-urile existente către DR. Durează ~10-15 minute în funcție de mărimea backup-urilor.
# Pe PRIMARY - test manual:
PowerShell -ExecutionPolicy Bypass -NoProfile -File "D:\rman_backup\transfer_to_dr.ps1"
# Output așteptat:
# [2025-10-08 HH:MM:SS] [INFO] Oracle DR Backup Transfer Started
# [2025-10-08 HH:MM:SS] [INFO] Testing SSH connection to 10.0.20.37...
# [2025-10-08 HH:MM:SS] [SUCCESS] SSH connection successful
# [2025-10-08 HH:MM:SS] [INFO] Waiting for RMAN backup to complete...
# [2025-10-08 HH:MM:SS] [INFO] Searching for today's backup files...
# [2025-10-08 HH:MM:SS] [INFO] Found X files, total size: Y GB
# [2025-10-08 HH:MM:SS] [INFO] Transferring: filename.BKP (XXX MB)
# [2025-10-08 HH:MM:SS] [SUCCESS] ✅ Transferred: filename.BKP
# ...
# [2025-10-08 HH:MM:SS] [INFO] Transfer summary: X succeeded, 0 failed
# [2025-10-08 HH:MM:SS] [INFO] DR Backup Transfer Completed Successfully
# Dacă apare EROARE, verifică:
# - SSH connection (Pas 1.6)
# - Directoare DR (verificate în PRE-VERIFICĂRI)
# - Backup-uri există în FRA (verifică cu Get-ChildItem)
Pas 3.5: Verificare fișiere transferate pe DR
# Pe PRIMARY - verifică remote pe DR:
ssh -i "$env:USERPROFILE\.ssh\id_rsa" root@10.0.20.37 "ls -lh /opt/oracle/backups/primary/"
# Ar trebui să vezi fișierele .BKP transferate
# Exemplu output:
# -rw-r--r-- 1 root root 2.1G Oct 8 03:15 o1_mf_nnnd0_DAILY_FULL_COMPRESSED_mfxxx.BKP
# -rw-r--r-- 1 root root 45M Oct 8 03:20 o1_mf_ncsnf_TAG20251008T0315_mfxxx.BKP
Pas 3.6: Verificare log transfer
# Pe PRIMARY:
$logFile = Get-ChildItem "D:\rman_backup\logs\transfer_*.log" | Sort-Object LastWriteTime -Descending | Select-Object -First 1
# Afișează ultimele 30 linii din log:
Get-Content $logFile -Tail 30
# Caută erori:
Select-String -Path $logFile -Pattern "ERROR|FAILED"
# Dacă nu returnează nimic = totul OK! ✅
⏰ FAZA 4: SETUP TASK SCHEDULER (10 minute)
Pas 4.1: Verificare script setup există
# Pe PRIMARY - verifică că ai scriptul de setup:
# OPȚIUNEA A: Transfer din WSL:
Copy-Item "\\wsl$\Ubuntu\mnt\e\proiecte\ROMFASTSQL\oracle\standby-server-scripts\03_setup_dr_transfer_task.ps1" "D:\rman_backup\setup_task.ps1" -Force
# OPȚIUNEA B: Transfer prin SCP:
# Pe WSL: scp -P 22122 /mnt/e/proiecte/ROMFASTSQL/oracle/standby-server-scripts/03_setup_dr_transfer_task.ps1 romfast@10.0.20.36:/d/rman_backup/setup_task.ps1
Pas 4.2: Rulare script setup (ca Administrator!)
# Pe PRIMARY - DESCHIDE PowerShell ca Administrator!
# Click dreapta pe PowerShell > Run as Administrator
# Verifică că ești Administrator:
([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
# Ar trebui să returneze: True
# Rulează script setup:
PowerShell -ExecutionPolicy Bypass -File "D:\rman_backup\setup_task.ps1"
# Output așteptat:
# Setting up Oracle DR Transfer scheduled task...
# Created log directory: D:\rman_backup\logs
# ✅ Task created successfully: Oracle_DR_Transfer
#
# Task details:
# Name: Oracle_DR_Transfer
# Schedule: Daily at 03:00 AM
# Script: D:\rman_backup\transfer_to_dr.ps1
# Logs: D:\rman_backup\logs\transfer_YYYYMMDD.log
#
# Task status: Ready
Pas 4.3: Verificare Task creat
# Pe PRIMARY:
Get-ScheduledTask -TaskName "Oracle_DR_Transfer" | Format-List *
# Verifică:
# - TaskName: Oracle_DR_Transfer
# - State: Ready
# - Triggers: Daily at 03:00 AM
# - Actions: PowerShell with transfer_to_dr.ps1
# SAU vizualizează în Task Scheduler GUI:
taskschd.msc
# Caută task-ul "Oracle_DR_Transfer" în Task Scheduler Library
Pas 4.4: Test manual task (OPȚIONAL)
# Pe PRIMARY - test rulare manuală:
Start-ScheduledTask -TaskName "Oracle_DR_Transfer"
# Monitorizează status:
Get-ScheduledTask -TaskName "Oracle_DR_Transfer" | Select-Object Name, State, LastRunTime, LastTaskResult
# Verifică log:
Start-Sleep -Seconds 60 # Așteaptă să se termine
Get-Content "D:\rman_backup\logs\transfer_$(Get-Date -Format 'yyyyMMdd').log" -Tail 20
🧪 FAZA 5: TESTING ȘI VALIDARE (30-60 minute)
Test 1: Verificare calendar backup existent
# Pe PRIMARY - verifică task-ul RMAN existent:
Get-ScheduledTask | Where-Object {$_.TaskName -like "*backup*" -or $_.TaskName -like "*RMAN*"} |
Select-Object TaskName, State, @{L="Trigger";E={(Get-ScheduledTaskInfo $_).NextRunTime}}
# Identifică task-ul de la 02:00 AM
# Verifică task-ul MareBackup de la 21:00
Test 2: Verificare flow complet (simulare)
02:00 AM → RMAN Backup (EXISTENT - upgradat)
↓
03:00 AM → Transfer DR (NOU - instalat)
↓
21:00 PM → MareBackup HDD E:\ (EXISTENT - nu modificat)
Verificare:
- RMAN backup task există și e setat pentru 02:00 AM
- DR transfer task există și e setat pentru 03:00 AM (DUPĂ RMAN)
- MareBackup task există și e setat pentru 21:00 (DUPĂ toate)
Test 3: Verificare spațiu disk
# Pe PRIMARY:
Get-PSDrive C,D,E | Format-Table Name,
@{L="Used(GB)";E={[math]::Round($_.Used/1GB,1)}},
@{L="Free(GB)";E={[math]::Round($_.Free/1GB,1)}},
@{L="Total(GB)";E={[math]::Round(($_.Used+$_.Free)/1GB,1)}},
@{L="Use%";E={[math]::Round($_.Used/($_.Used+$_.Free)*100,0)}}
# Verifică că:
# - C:\ are >10GB free (pentru FRA și temp)
# - D:\ are >20GB free (pentru scripts și logs)
# - E:\ variabil (HDD extern)
# Pe DR:
ssh root@10.0.20.37 "df -h /opt/oracle"
# Verifică că ai >50GB free (pentru 3+ zile de backups compressed)
Test 4: Test restore pe DR (RECOMANDAT - durează 45-75 min)
⚠️ IMPORTANT: Acest test validează că backup-urile transferate FUNCȚIONEAZĂ și pot fi folosite pentru disaster recovery!
# Pe DR Server:
ssh root@10.0.20.37
# Verifică că backup-uri există:
ls -lh /opt/oracle/backups/primary/
# Rulează test restore (DOAR dacă ai timpul disponibil):
/opt/oracle/scripts/dr/05_test_restore_dr.sh
# Monitorizează progres:
tail -f /opt/oracle/logs/dr/test_restore_*.log
# După 45-75 minute, verifică raport:
cat /opt/oracle/logs/dr/test_report_$(date +%Y%m%d).txt
# ⚠️ IMPORTANT: După test, OPREȘTE database pe DR!
docker exec -u oracle oracle-standby bash -c "
export ORACLE_SID=ROA
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
\$ORACLE_HOME/bin/sqlplus / as sysdba <<< 'SHUTDOWN IMMEDIATE;'
"
# Exit din DR:
exit
📊 POST-IMPLEMENTATION MONITORING
Zi 1 (mâine dimineață):
# Pe PRIMARY - verifică că totul a rulat OK noaptea trecută:
# Check 1: RMAN backup (02:00 AM)
$lastBackup = Get-ChildItem "C:\Users\Oracle\recovery_area\ROA\BACKUPSET" -Recurse -File |
Sort-Object LastWriteTime -Descending | Select-Object -First 1
$age = (Get-Date) - $lastBackup.LastWriteTime
Write-Host "Last RMAN backup: $($lastBackup.Name)"
Write-Host "Age: $($age.Hours) hours $($age.Minutes) minutes"
# Ar trebui să fie <12 ore (backup de azi-noapte la 02:00)
# Check 2: Transfer DR (03:00 AM)
$transferLog = Get-ChildItem "D:\rman_backup\logs\transfer_*.log" |
Sort-Object LastWriteTime -Descending | Select-Object -First 1
Write-Host "`nTransfer log: $($transferLog.Name)"
Get-Content $transferLog -Tail 10
# Ar trebui să vezi "Transfer Completed Successfully"
# Check 3: MareBackup HDD (21:00)
Get-ChildItem "E:\backup_roa\" -Recurse |
Sort-Object LastWriteTime -Descending | Select-Object -First 5 |
Format-Table Name, @{L="Size(MB)";E={[math]::Round($_.Length/1MB,2)}}, LastWriteTime
# Pe DR - verifică backup-uri primite:
ssh root@10.0.20.37 "ls -lth /opt/oracle/backups/primary/ | head -10"
# Ar trebui să vezi fișiere noi de azi-noapte
Săptămânal (Luni dimineața):
# Quick health check:
Get-Content "D:\rman_backup\logs\transfer_*.log" | Select-String "ERROR|FAILED"
# Dacă nu returnează nimic = totul OK!
# Verifică spațiu disk:
Get-PSDrive C,D,E | Format-Table Name, @{L="Free(GB)";E={[math]::Round($_.Free/1GB,1)}}
Lunar (Prima Duminică):
# Test restore complet pe DR (OBLIGATORIU!):
ssh root@10.0.20.37 "/opt/oracle/scripts/dr/05_test_restore_dr.sh"
# Verifică raport și documentează RTO/RPO
🚨 TROUBLESHOOTING
Problem: "SSH connection refused"
# Test conectivitate:
ping 10.0.20.37
# Test SSH manual:
ssh -v -i "$env:USERPROFILE\.ssh\id_rsa" root@10.0.20.37 "echo OK"
# Soluții:
# 1. Verifică DR server pornit
# 2. Verifică firewall permite port 22
# 3. Re-generare SSH keys (vezi FAZA 1)
Problem: "RMAN backup failed"
# Check Oracle alert log:
# Găsește alert.log în $ORACLE_BASE/diag/rdbms/roa/ROA/trace/
# Check FRA space:
sqlplus / as sysdba
SELECT * FROM v$recovery_area_usage;
# Cleanup manual dacă e plin:
RMAN> DELETE NOPROMPT OBSOLETE;
Problem: "Transfer failed - no files found"
# Verifică că backup RMAN a rulat:
Get-ChildItem "C:\Users\Oracle\recovery_area\ROA\BACKUPSET" -Recurse -File |
Sort-Object LastWriteTime -Descending | Select-Object -First 5
# Verifică că fișierele sunt din azi:
# Ar trebui să vezi LastWriteTime = azi după 02:00 AM
✅ CHECKLIST FINAL
Pre-Implementation:
- DR Server operațional (container oracle-standby UP)
- Spațiu disk verificat (93GB liberi pe DR)
- Directoare create (
/opt/oracle/backups/primary/) - Script-uri locale pregătite (toate .ps1, .txt, .sh)
FAZA 1 - SSH Keys:
- SSH key pair generat pe PRIMARY
- Public key copiat pe DR
- Test conexiune passwordless OK
- SSH keys copiate pentru SYSTEM account
FAZA 2 - RMAN Upgrade:
- Script vechi backed up
- Script nou instalat cu REDUNDANCY 2
- Verificat conținut script nou
- Test backup (opțional)
FAZA 3 - Transfer Script:
- Director logs creat
- Script transfer_to_dr.ps1 instalat
- Test manual transfer OK
- Fișiere verificate pe DR
- Log transfer fără erori
FAZA 4 - Task Scheduler:
- Script setup rulat ca Administrator
- Task "Oracle_DR_Transfer" creat
- Task verificat (Ready, 03:00 AM daily)
- Test manual task (opțional)
FAZA 5 - Testing:
- Flow complet verificat (02:00 → 03:00 → 21:00)
- Spațiu disk verificat (PRIMARY și DR)
- Test restore pe DR (recomandat)
- Database DR oprit după test
Post-Implementation:
- Monitorizare Zi 1 (mâine dimineață)
- Monitorizare săptămânală
- Schedule primul test restore lunar
📞 CONTACT ȘI ESCALATION
| Issue | Response Time | Action |
|---|---|---|
| PRIMARY Down | Immediate | Activate DR (full_dr_restore.sh pe 10.0.20.37) |
| Backup Failed | 2 hours | Check logs, retry manual |
| Transfer Failed | 4 hours | Verifică SSH, retry |
📄 FIȘIERE IMPORTANTE
Pe PRIMARY (10.0.20.36):
D:\rman_backup\
├── rman_backup.bat # Launcher existent
├── rman_backup.txt # UPGRADED cu compression
├── rman_backup.txt.backup_* # Backup vechi (safety)
├── transfer_to_dr.ps1 # NOU - transfer script
├── setup_task.ps1 # Setup Task Scheduler
└── logs\
└── transfer_YYYYMMDD.log # Transfer logs
Pe DR (10.0.20.37):
/opt/oracle/backups/primary/ # Backup-uri primite
/opt/oracle/scripts/dr/ # Restore scripts
/opt/oracle/logs/dr/ # Restore logs
🎯 NEXT STEPS
- ✅ CITEȘTE acest ghid complet
- 🔜 EXECUTĂ FAZA 1 (SSH Keys)
- 🔜 EXECUTĂ FAZA 2 (RMAN Upgrade)
- 🔜 EXECUTĂ FAZA 3 (Transfer Script)
- 🔜 EXECUTĂ FAZA 4 (Task Scheduler)
- 🔜 EXECUTĂ FAZA 5 (Testing)
- 📅 MONITORIZEAZĂ primele 3 zile
- 📅 SCHEDULE primul test restore (luna viitoare)
Document creat: 2025-10-08 Status: Ready for Implementation Versiune: 1.0 Durată estimată: 60-90 minute (exclusiv test restore opțional)
🔐 SECURITY NOTES
- SSH private key (
id_rsa) e sensibil - NU îl partaja niciodată! - Backup SSH keys în locație sigură offline
- Logs pot conține informații sensibile - restricționează access
- Test restore pe DR NU afectează PRIMARY (database pe DR e separat)
Succes la implementare! 🚀
Dacă întâmpini probleme, consultă secțiunea TROUBLESHOOTING sau contactează suportul.