Database herstellen is een belangrijk onderdeel van Oracle-databasebeheer. Hier in dit bericht zal ik proberen scenario's te behandelen over het herstellen van een database met RMAN
Geval 1:verlies van een gegevensbestand
We krijgen vaak het scenario waarin we het gegevensbestand zijn kwijtgeraakt door een harde schijfcrash en we het gegevensbestand moeten herstellen om de dingen te corrigeren.
Hier in dit bericht zou ik uitleggen om dat uit te voeren
Laten we een voorbeeld nemen om het uit te leggen
We hebben een tabel emp_master in de database
- Tel de rijen
SQL> SELECT COUNT(*) FROM emp_master; -- 100 rows
2) Verwijder het databestand uit het bestandssysteem
3) Probeer opnieuw te tellen
SELECT COUNT(*) FROM emp_master; SELECT COUNT(*) FROM emp_master; SELECT COUNT(*) FROM emp_master * ERROR at line 1: ORA-01116: error in opening database file 50 ORA-01110: data file 50: '/oradata/TEST/test_tools1.dbf' ORA-27041: unable to open file
4) Om het herstel uit te voeren, maakt u het gegevensbestand offline en herstelt u het en herstelt u het en maakt u het opnieuw online
$ run { allocate channel t1 type 'SBT_TAPE' sql 'alter database datafile 50 offline'; restore datafile 50; recover datafile 50; sql 'alter database datafile 50 online'; } SQL> SELECT COUNT(*) FROM emp_master;
Geval 2:verlies van een tablespace
Nogmaals als we de hele TOOLS-tabelruimte zijn kwijtgeraakt, zou de RMAN-instructie anders zijn
run { allocate channel t1 type 'SBT_TAPE' sql 'alter tablespace TOOLS offline'; restore tablespace TOOLS; recover tablespace TOOLS; sql 'alter tablespace TOOLS online'; }
Geval 3:verlies van alle gegevensbestanden behalve controlebestand en logs opnieuw uitvoeren
run { startup mount allocate channel t1 type 'SBT_TAPE' restore database; recover database; sql 'alter database open'; }
Gerelateerde artikelen
Hoe een RMAN-herstelcatalogus te maken en de database in de catalogus te registreren
RMAN Back-up commando's
RMAN Lijst back-up commando's
Oracle Recovery Manager :RMAN cheatsheet