Sunteți pe pagina 1din 4

In this Document

Purpose
Scope and Application
Introduction
Creation Of Rman Duplicate Without Target And Recovery Catalog Connection.
Process involved in this type of duplicate database
The steps involved in creating the duplicate database are as follows

Platforms: 1-914CU;

This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not
been subject to an independent technical review.

Applies to:
Oracle Server - Enterprise Edition - Version: 11.2.0.1.0 to 11.2.0.1.0 - Release: 11.2 to 11.2
Information in this document applies to any platform.

Purpose
The following document provides clear explanation and steps necessary for creating a
Rman duplicate database without target and recovery catalog connections.

Scope and Application


Introduction

Rman 11g release 2 provides us the flexibility of creating the rman duplicate without connecting
to the target database and recovery catalog.

All rman needs here is the location of the backup pieces which is accessible and rman reads the
backup pieces and restores the spfile,controlfile,datafiles and archivelog files to perform the
duplicate operation.

An example for this kind of duplicate operation is:

RMAN>DUPLICATE DATABASE TO dup11r2


UNTIL TIME "TO_DATE('29-MAY-2010 14:16:42','DD-MON-
YYYYHH24:MI:SS')"
SPFILE
set control_files='D:\dup11r2\c1.ctl'
set db_file_name_convert='D:\Database\Ora11g2\ora11g2','d:\dup11r2'
set log_file_name_convert='D:\Database\Ora11g2\ora11g2','d:\dup11r2'
BACKUP LOCATION 'D:\dup11r2';
Here use of the BACKUP LOCATION clause identifies the type of duplication as having no
target connection, no recovery catalog and being backup-based.

Creation Of Rman Duplicate Without Target And Recovery


Catalog Connection.
Process involved in this type of duplicate database

++ Rman restores the spfile from the backup pieces located in the mentioned location.

++ Once the spfile is restored, rman sets appropriate values to the parameters mentioned the
duplicate command. For example:

db_name
control_files
db_file_name_convert
log_file_name_convert

etc ...

Once done, rman restarts the instance to no mount so that the changes can take effect.

++ Rman now changes the value of the parameter db_name to the target database name to
achieve the restore of the controlfile. The restored controlfile will have the db_name as of the
target database name and since we cannot have a different db_name in the spfile and in the
controlfile, rman will have to set the parameter db_name to the target database name and perform
the restore of the datafiles and controlfiles.

Also here if the duplicate is happening on the same machine, then 2 controlfiles with the same
db_name cannot be mounted. In order to achieve this the auxiliary instance will have the
parameter db_unique_name set to a unique value. Rman takes care of this sets the
db_uniqiue_name to the database name specified for the auxiliary database.

++ After the above operation,controlfile is restored from the backup piece to the location
provided for the parameter control_files.

++ Now Rman restores the datafiles to the locations specified by the parameter
log_file_name_convert.

++ Recovery of the datafiles are performed.

++ Once the recovery is completed, rman shuts down the database to reset the value of db_name
to the value provided for the auxiliary database.
++ Once this is done, the database is taken to no mount phase and the controlfile is recreated to
change the database name and the id.This is followed by the database getting opened with
resetlogs.

The steps involved in creating the duplicate database are as follows

1) Take a backup of the database as follows:


RMAN > backup database plus archivelog;

2) Making the backup pieces available for duplicate operation.


++ If the duplicate is going to happen on different server, move the backup
pieces to a new server using commands like ftp,scp etc.
++ If the duplicate is going to happen on the same server as target, then you
can either retain them in the same location where the backup was done or copy
it to a required location.

3) Create a password file for the auxiliary instance.


For unix copy the password file from the target database to $ORACLE_HOME/dbs
and rename it.
For windows copy the password file from the target database to
%ORACLE_HOME/database and rename it.

4) Create a initialization parameter for the auxiliary instance with only one parameter
DB_NAME.
DB_NAME=dup11r2

5) Now start the auxiliary instance to no mount mode.


Unix Example
============
Just set the environment variables and start the instance.

% export ORACLE_SID=dup11r2
% export ORACLE_HOME=/home/oracle/ora11g
% export PATH=$ORACLE_HOME/bin:$PATH
% sqlplus "/as sysdba"
SQL > startup nomount

Windows Example
===============
Create a service and then set the necessary environment variables and start
the instance.

% oradim -new -sid dup11r2


set ORACLE_SID=dup11r2
set ORACLE_HOME=D:\Orahome\Ora11gr2
set PATH=D:\Orahome\Ora11gr2\bin;%PATH%
% sqlplus "/as sysdba"
SQL > startup nomount

6) Connect to the auxiliary instance from RMAN and perform the rman duplicate as follows:

EXAMPLE
=======
% rman auxiliary /

RMAN > DUPLICATE DATABASE TO dup11r2


UNTIL TIME "TO_DATE('29-MAY-2010 14:16:42','DD-MON-YYYY HH24:MI:SS')"
SPFILE
set control_files='D:\dup11r2\c1.ctl'
set db_file_name_convert='D:\Database\Ora11g2\ora11g2','d:\dup11r2'
set log_file_name_convert='D:\Database\Ora11g2\ora11g2','d:\dup11r2'
BACKUP LOCATION 'D:\dup11r2'
;

S-ar putea să vă placă și