Wednesday, August 13, 2014

RMAN Restore and Recovery Scenarios


Restore and Recovery Scenarios

 

Full Database Restore

 

$ORACLE_HOME/bin/rman target / nocatalog

RMAN> shutdown abort;

RMAN> startup mount;

RMAN> restore database;

RMAN> recover database;

RMAN> alter database open;

database opened

 

Tablespace Restore (online)

 

$ORACLE_HOME/bin/rman target / nocatalog

RMAN> sql 'alter tablespace users offline';

RMAN> restore tablespace users;

RMAN> recover tablespace users;

RMAN> sql 'alter tablespace users online';

* A SYSTEM tablespace cannot be recovered with the database online.

 

 

Tablespace Restore (offline)

 

$ORACLE_HOME/bin/rman target / nocatalog

RMAN> shutdown abort;

RMAN> startup mount;

RMAN> restore tablespace users;

RMAN> recover tablespace users;

RMAN> alter database open;

database opened

 

Restoring a Specific Datafile

 

$ORACLE_HOME/bin/rman target / nocatalog

RMAN> shutdown abort;

RMAN> startup mount;

RMAN> restore datafile '/oradata/DB1/dbf/users01.dbf';

RMAN> recover datafile '/oradata/DB1/dbf/users01.dbf';

RMAN> alter database open;

database opened

 

Control File Restoration

 

Prerequisite: In your rman backup directory determine the latest control file backup.

Default Format: c-nnnnnnnnnn-nnnnnnnn-nn

 

$ORACLE_HOME/bin/rman target / nocatalog

RMAN> shutdown abort;

RMAN> startup nomount;

RMAN> set dbid = 1184749195

RMAN> restore controlfile from '/oradata/DB1/rman/c-1184749195-20060626-02'

RMAN> alter database mount;

RMAN> restore database;

RMAN> recover database;

RMAN> alter database open resetlogs;

database opened



Database Point-In-Time-Recovery (PITR)
Also known as time-based incomplete recovery.

 

$ORACLE_HOME/bin/rman target / nocatalog

RMAN> shutdown abort;

RMAN> startup mount;

RMAN> restore database until time "to_date('09/03/07 13:00:00', 'MM/DD/YY HH24:MI:SS')";

RMAN> recover database until time "to_date('09/03/07 13:00:00', 'MM/DD/YY HH24:MI:SS')";

RMAN> alter database open resetlogs;

database opened

* Make sure you perform a full backup after this operation!



 



Restore to Another System
Prerequisites

Ideally ensure destination system configured exactly like source.

Same OS version and patch level.

Same drives (C:, D:, S: etc.).

CPU and RAM same or better.

The same version of Oracle is installed on the target system as the source.

Ensure the ORACLE_HOME and ORACLE_SID environment variables are set.

Ensure the listener is running.

 

Copy RMAN backupset files to the destination system rman directory.

 

If Windows:

Create the password file.

orapwd file=orapwDB1 password=mypassword

Creates the file %ORACLE_HOME%\dbs\orapwDB1

Copy %ORACLE_HOME%\dbs\orapwDB1 to %ORACLE_HOME%\database.

In some instances of a restore like this it may look for the file here.

Create or start the Windows database instance service.

oradim -new -sid DB1 -intpwd mypassword -startmode MANUAL

Creates the file: %ORACLE_HOME%\database\PWDDB1.ORA

Ensure the drive\path to the admin (adump,bdump,cdump,udump), data and redo directories on the source and destination systems are identical.

Example:

Admin Dump Directories

mkdir C:\oracle\product\10.2.0\admin 

mkdir C:\oracle\product\10.2.0\admin\DB1 

mkdir C:\oracle\product\10.2.0\admin\DB1\adump 

mkdir C:\oracle\product\10.2.0\admin\DB1\bdump 

mkdir C:\oracle\product\10.2.0\admin\DB1\cdump 

mkdir C:\oracle\product\10.2.0\admin\DB1\udump 

 

 

Data Directories

mkdir D:\oradata

mkdir D:\oradata\DB1

 

 

Redo and Archive Log Directories

mkdir D:\oradata\DB1\recovery1

mkdir D:\oradata\DB1\recovery2

 

 

Procedure

 

Restore SPFILE and Control File

%ORACLE_HOME%\bin\rman target / nocatalog 

RMAN> set dbid 161080442 

RMAN> startup nomount; 

      Creates the file: %ORACLE_HOME%\database\hc_db1.dat

RMAN> restore spfile from 'R:\rman\C-161080442-20080313-00'; 

      Creates the file: %ORACLE_HOME%\database\SPFILEDB1.ORA

RMAN> startup force nomount

RMAN> restore controlfile from 'R:\rman\C-161080442-20080313-00'; 

RMAN> shutdown immediate 

RMAN> exit 

 

 

Restore and Recover the Data

 

%ORACLE_HOME%\bin\rman target / nocatalog 

RMAN> startup mount; 

RMAN> restore database; 

      For a large database this step may take some time.

RMAN> recover database; 

      If you do not have\need the very last log(s) you can disregard any error messages.

      ORA-00310: archived log contains sequence 100; sequence 101 required...

RMAN> alter database open resetlogs; 

      database opened

No comments:

Post a Comment