Återställ databas är en viktig del av Oracles databasadministration. Här i det här inlägget kommer jag att försöka täcka scenarios om hur man återställer databasen med RMAN
Fall 1:Förlust av en datafil
Vi får ofta scenariot där vi förlorade datafilen på grund av hårddiskkrasch och vi får återställa datafilen för att rätta till saker och ting.
Här i det här inlägget skulle jag förklara för att utföra det
Låt oss ta ett exempel för att förklara det
Vi har en tabell emp_master i databasen
- Räkna raderna
SQL> SELECT COUNT(*) FROM emp_master; -- 100 rows
2) Ta bort datafilen från filsystemet
3) Försök att ta räkningen igen
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) För att göra återställningen, gör datafilen offline och sedan återställ den och återställ och gör den online igen
$ 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;
Fall 2:Förlust av ett tabellutrymme
Återigen om vi har förlorat hela TOOLS-tabellutrymmet, då skulle RMAN-satsen vara annorlunda
run { allocate channel t1 type 'SBT_TAPE' sql 'alter tablespace TOOLS offline'; restore tablespace TOOLS; recover tablespace TOOLS; sql 'alter tablespace TOOLS online'; }
Fall 3:Förlust av all datafil utom kontrollfil och gör om loggar
run { startup mount allocate channel t1 type 'SBT_TAPE' restore database; recover database; sql 'alter database open'; }
Relaterade artiklar
Hur man skapar en RMAN-återställningskatalog och registrerar databasen i katalogen
RMAN Backup-kommandon
RMAN Lista backup-kommandon
Oracle Recovery Manager :RMAN cheatsheet