Am un server Oracle 18c XE unde există o corupție în fișierul system01.dbf al bazei de date XE principale.
Toate datele utilizatorului se află într-o bază de date PDB care, din fericire, pare ok (PDB-ul funcționează acum în producție).
Problema este că nu pot face o copie de rezervă a PDB-ului cu expdp
, deoarece expdp
eșuează cu această eroare:
UDE-00604: operația a generat eroarea ORACLE 604
ORA-00604: eroare riscontrată în SQL ricorsivo nivel 2
ORA-01578: blocco dati ORACLE danneggiato (fișier # 1, blocco # 636)
ORA-01110: fișierul de date 1: „/opt/oracle/oradata/XE/system01.dbf”
În mod similar, nu mă pot conecta cu RMAN, din cauza aceleiași erori:
RMAN-00571: =============================================== ==============
RMAN-00569: =============== STACK DE MESAJE DE EROARE URMĂ ===============
RMAN-00571: =============================================== ==============
RMAN-00554: inițializarea pachetului managerului intern de recuperare a eșuat
RMAN-04005: eroare din baza de date țintă:
ORA-00604: eroare riscontrată în SQL ricorsivo nivel 2
ORA-01578: blocco dati ORACLE danneggiato (fișier # 1, blocco # 636)
ORA-01110: fișierul de date 1: „/opt/oracle/oradata/XE/system01.dbf”
RMAN-04015: eroare setarea caracterelor bazei de date țintă la US7ASCII
Pentru simplitate, aș dori doar să fac backup pentru PDB, apoi să șterg și să reinstalez întreaga bază de date 18c XE de la zero și apoi să refac PDB (nu este nevoie să recuperez nimic, deoarece corupția este în baza de date XE principală, în timp ce PDB-ul este ok ).
Există vreo modalitate de a face asta?
Nu am backup-uri RMAN anterioare, deoarece am făcut întotdeauna toate backup-urile cu expdp
, dar backup-urile sunt vechi acum, pentru că expdp
a încetat să mai lucreze acum câteva zile, când probabil că s-a produs corupția.
ACTUALIZAȚI
Până la urmă, singura soluție viabilă a fost:
- Instalați Oracle 18c XE pe o altă mașină
- Restaurați schema db fără rânduri pe noua mașină de pe o mașină veche
expdp
haldă
- Creați o legătură de bază de date de la noua mașină la serverul original cu PDB-ul care rulează
- manual
INSERT INTO ... SELECT
toate tabelele de la serverul original conectat la noua mașină
- a face o
expdp
gunoi de la noua mașină
- reinstalați Oracle pe serverul original și importați dump-ul nou creat