Wednesday, 13 April 2016

DB refresh with RMAN DUPLICATE command

Source:
==============================

1. take backup using RMAN.

Ex:
run
{
backup as compressed backupset database format="/u10/<dbname>_datafiles_%U";
sql 'alter system archive log current';
BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL FORMAT "/u10/<dbname>_archive_%U";
BACKUP AS COMPRESSED BACKUPSET CURRENT CONTROLFILE FORMAT "/u10/<dbname>_control_%U" ;
}

2.take logfiles and datafiles locations.

3.take the undo tablespace name.

sql>show parameter undo


Target(database to be refresh):
===============================

4. taken target database backup for safe side.

5. create pfile from spfile.

 SQL> create pfile from spfile.

6. take user's DDL in target database.

7. take logfile and datafile locations.

8.drop the databse.

 sql>shut immediate
 sql>startup mount restrict
 sql>select name from v$database.
 sql>drop database.

9. Open the pfile and set the convert parameters to new paths to which your datafiles to be stored while restoring. Please check the paths carefully.

 Ex:

db_file_name_convert='/u02/oradata/PAPRD/','/u02/oradata/PADV1/'
log_file_name_convert='/u02/oradata/PAPRD/','/u02/oradata/PADV1/','/u10/oradata/PAPRD/','/u10/oradata/PADV1/'

10. change the undo tablespace name according to source undo tablespace.

11.export ORACLE_HOME,ORACLE_SID (target database to be refreshed)

12. start instance in nomount

13. connect rman as auxiliary.

rman auxiliary /

14. run the duplicate command in RMAN prompt.

RMAN>duplicate database to CSTRN backup location '/u10/cold/CSTRN/2016_01_13'; -- use the path to which we taken the source backup.

15.restart the database.

sql>shut immediate
sql>create spfile from pfile.
sql>startup


3 comments:

  1. Hi Ramesh,

    Greetings,
    After step 11, Did u missed to nomount the database? or will duplicate database command itself restore the spfile? please clarify.

    Thank you.

    ReplyDelete
  2. Hi Sameer,
    Thank you for identifying the miss, we should start the database in nomount before starting the duplicate database command in RMAN.

    ReplyDelete
  3. Hi Sameer,

    Its corrected now in the post.

    ReplyDelete