sql >> Databasteknik >  >> RDS >> Oracle

Hur man återställer databasen med RMAN

Å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

  1. 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


  1. Slutar använda stänger en öppen SQL-anslutning

  2. Android SQLite Query - Hämta de senaste 10 posterna

  3. Hur kan jag infoga i en BLOB-kolumn från en insert-sats i sqldeveloper?

  4. Den bortglömda uppdragsoperatören =och det vanliga :=