sql >> Database >  >> RDS >> Oracle

Hoe database te herstellen met RMAN

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

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


  1. Asynchrone replicatie instellen tussen MySQL Galera-clusters

  2. Voeg tijdstempelkolom toe met standaard NU() alleen voor nieuwe rijen

  3. 3 manieren om een ​​getal op te maken tot 2 decimalen in Oracle

  4. Hoe de sortering van een kolom in SQL Server (T-SQL) in te stellen