Files
ROMFASTSQL/oracle/standby-server-scripts/IMPLEMENTARE_PAS_CU_PAS.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

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:

  1. RMAN backup task există și e setat pentru 02:00 AM
  2. DR transfer task există și e setat pentru 03:00 AM (DUPĂ RMAN)
  3. 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

  1. CITEȘTE acest ghid complet
  2. 🔜 EXECUTĂ FAZA 1 (SSH Keys)
  3. 🔜 EXECUTĂ FAZA 2 (RMAN Upgrade)
  4. 🔜 EXECUTĂ FAZA 3 (Transfer Script)
  5. 🔜 EXECUTĂ FAZA 4 (Task Scheduler)
  6. 🔜 EXECUTĂ FAZA 5 (Testing)
  7. 📅 MONITORIZEAZĂ primele 3 zile
  8. 📅 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.