HOME > > Restore and Recover database to a new host with different directory structure

Restore and Recover database to a new host with different directory structure

Anup - Friday, May 20, 2011

Restore and Recover database to a new host with different directory structure

In this case DBID of the database will be the same as of original database.

Source Configuration:

Host Name
SUN1
DB Name
PROD
Database Location
/DB/PROD
Backup Location
/RMAN_BKP
Archive Location
/archive

Target Configuration:

Host Name
SUN2
DB Name
PROD
Database Location
/INDIAN/PROD
Backup Location
/INDIAN/RMAN_BKP
Archive Location
/INDIAN/archive



Step 1 Take a full backup of Source Database

RMAN> backup database plus archivelog;
RMAN>backup spfile; - if you are using spfile , other wise take backup of pfile by using os command.

Step 2 Transfer these backup pieces to target machine (/INDIAN/RMAN_BKP location)

Step 3 Determine the DBID of source machine

SQL> select dbid from v$database;

DBID
----------
142618240

Step 4
Now perform task on target machine
First set ORACLE_SID, ORACLE_HOME and PATH then connect to rman

Step 5 Set DBID and restore spfile or pfile.

RMAN> set dbid 142618240
executing command: SET DBID

RMAN> startup nomount

Step 6 Restore pfile.
RMAN> restore spfile to pfile '/export/home/oracle/oracle/product/10.2.0/db_1/dbs/initPROD.ora' from '/INDIAN/RMAN_BKP/c-142618240-20100927-01';

Step 7 after restoration of pfile from spfile backup . shutdown the instance.

RMAN> shutdown immediate

Step 8 Open parameter file and edit control_files parameter to new location (/INDIAN/PROD/)

Step 7 Start the instance with pfile.

RMAN> STARTUP FORCE NOMOUNT

Step 8 Restore and Mount the Control file on Target Instance

RMAN> restore controlfile from '/INDIAN/RMAN_BKP/c-142618240-20100927-01';
RMAN> ALTER DATABASE MOUNT;

Step 9 Catalog the all backup piece

RMAN> catalog backuppiece '/DB/RMAN_BKP/TAG20080506T150716_421c355f_.bkp';
-…..
…..
….
RMAN> list backup

Step 10 Restore the database to new location (/INDIAN/PROD)

A) From SQL*Plus determine the data file and redo log file name.

SQL> SELECT FILE# AS "File/Grp#", NAME FROM V$DATAFILE
UNION
SELECT GROUP#,MEMBER FROM V$LOGFILE

B) Make a script by issuing SET NEWNAME and run.

run
{
set newname for datafile '/DB/PROD/system01.dbf' to '/DB/ANUP/system01.dbf';
set newname for datafile '/DB/PROD/undotbs01.dbf' to '/DB/ANUP/undotbs01.dbf';
set newname for datafile '/DB/PROD/sysaux01.dbf' to '/DB/ANUP/sysaux01.dbf';
set newname for datafile '/DB/PROD/users01.dbf' to '/DB/ANUP/users01.dbf';
set newname for datafile '/DB/PROD/example01.dbf' to '/DB/ANUP/example01.dbf';
set newname for datafile '/DB/PROD/RMAN.DBF' to '/DB/ANUP/RMAN.dbf';
set newname for datafile '/DB/PROD/a.sql' to '/DB/ANUP/a.sql';
restore database;
switch datafile all;
}

Step 11 Restore Backup archive log file to new location.

run
{
set archivelog destination to '/DB/archive';
restore archivelog all;
}

Step 12 Recover the database

RMAN > recover database;

Step 13 Relocate Log file location.

alter database rename file '/DB/PROD/redo01.log' to '/DB/ANUP/redo01.log';

Database altered.

alter database rename file '/DB/PROD/redo02.log' to '/DB/ANUP/redo02.log';

Database altered.

alter database rename file '/DB/PROD/redo03.log' to '/DB/ANUP/redo03.log';

Step 14 Open the Database resetlogs option.

RMAN> alter database open resetlogs;




























Siva said...

Excellent Post......Thanks a ton!!!

Contact me

Get in Touch

Need to get touch with me? Please fill out the form with your enquiry.

Name
Anup Srivastav
Address
Lucknow - Utter Pradesh
Email
myindiandba@gmail.com
Message me