0% found this document useful (0 votes)
43 views

Clone by Conrol File

The document discusses different methods of cloning an Oracle database including cold cloning, hot cloning, and RMAN cloning. Cold cloning involves taking a cold backup and copying files while the database is shut down. Hot cloning uses archivelog mode and copies files while the database is open. RMAN cloning automatically duplicates the database using backups without manual intervention.

Uploaded by

NTGDN
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

Clone by Conrol File

The document discusses different methods of cloning an Oracle database including cold cloning, hot cloning, and RMAN cloning. Cold cloning involves taking a cold backup and copying files while the database is shut down. Hot cloning uses archivelog mode and copies files while the database is open. RMAN cloning automatically duplicates the database using backups without manual intervention.

Uploaded by

NTGDN
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

What is Cloning?

Database Cloning is a procedure that can be used to create an identical copy of the
existing Oracle database. DBAs sometimes need to clone databases to test backup
and recovery strategies or export a table that was dropped from the production
database and import it back into the production database. Cloning can be done on
separate hosts or on the same host and is different from standby database.
Reason for Cloning

In every oracle development and production environment there will become the need
to transport the entire database from one physical machine to another. This copy
may be used for development, production testing, beta testing, etc, but rest
assured that this need will arise and management will ask you to perform this task
quickly. Listed below are the most typical uses:
Relocating an Oracle database to another machine.
Moving Oracle database to new Storage media.
Renaming Oracle database.
Database Cloning can be done using the following methods,
Cold Cloning
Hot Cloning
RMAN Cloning
Here is a brief explanation how to perform cloning in all these three methods
METHOD 1: COLD CLONING

Cold Cloning is one the reliable methods that is done using the Cold Backup. The
drawback of this method is that the database has to be shutdown while taking the
cold backup.
Considerations:

Source Database Name: RIS


Clone Database Name: RISCLON
Source Database physical files path=/u01/RIS/oradata
Cloned Database physical files path=/u02/RISCLON/oradata
Steps to be followed:

Startup the source database (if not open)


$ export ORACLE_SID=RIS
$ sqlplus / as sysdba
SQL> startup
Find out the path and names of datafiles, control files, and redo log files.
SQL> select name from v$datafile;
SQL> select member from v$logfile;
SQL> select name from v$controlfile;
Take the control file backup.
SQL> alter database backup controlfile to trace;
Parameter file backup.
If RIS database is using spfile,
SQL> create pfile=/u02/RISCLON/initRISCLON.ora from spfile;
If database is using pfile, use OS command to copy the pfile to a backup location.
Shutdown the RIS database
SQL> shutdown
Copy all data files, control files, and redo log files of RIS database to a
target database location.
$ mkdir /u02/RISCLON/oradata
$ cp /u01/RIS/oradata/* /u02/RISCLON/oradata/
Create appropriate directory structure in clone database for dumps and specify them
in the parameter file.
$ mkdir -p /u02/RISCLON/{bdump,udump}
Edit the clone database parameter file and make necessary changes to the clone
database
$ cd /u02/RISCLON/
$ vi initRISCLON.ora
db_name=RISCLON
control_files=/u02/RISCLON/oradata/cntrl01.ctl
background_dump_dest=/u02/RISCLON/bdump
user_dump_dest=/u02/RISCLON/udump
. . .
. . .
:wq!
Startup the clone database in NOMOUNT stage.
$ export ORACLE_SID=RISCLON
SQL> startup nomount pfile=/u02/RISCLON/initRISCLON.ora
Create the control file trace for the clone database using the trace control file
and specify the appropriate paths for redolog and datafiles.
CREATE CONTROLFILE SET DATABASE RISCLON RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 /u02/RISCLON/oradata/redo01.log SIZE 5M,
GROUP 2 /u02/RISCLON/oradata/redo02.log SIZE 5M,
DATAFILE
/u02/RISCLON/oradata/system01.dbf,
/u02/RISCLON/oradata/undotbs01.dbf,
/u02/RISCLON/oradata/sysaux01.dbf,
/u02/RISCLON/oradata/users01.dbf,
/u02/RISCLON/oradata/example01.dbf
CHARACTER SET AL32UTF8
Create the control file by running from the trace path
SQL> @u01/RIS/source/udump/cntrl.sql
Once the control files successfully created, open the database with resetlogs
option.
SQL> alter database open resetlogs;
METHOD 2: HOT CLONING

Hot database cloning is more suitable for databases which are running 24X7X365 type
of databases and is done using the hot backup. For hot database cloning, database
has to be in archivelog mode and there no need to shutdown the database.
Considerations:

Source Database Name: RIS


Clone Database Name: RISCLON
Source Database physical files path=/u01/RIS/oradata
Cloned Database physical files path=/u02/RISCLON/oradata
Steps to be followed:

1. Find out the path and names of datafiles.


SQL> select name from v$datafile;
2. Backup the parameter file
If RIS database is using spfile create pfile,
SQL> create pfile=/u02/RISCLON/initRISCLON.ora from spfile;
If database is using pfile, use OS command to copy the pfile to a backup location.
3. Note down the oldest log sequence number.
SQL> alter system switch logfile;
SQL> archive log list;
4. Place the database to backup mode
SQL> alter database begin backup;
5. Copy all data files of RIS database to a clone location.
$ mkdir /u02/RISCLON/oradata
$ cp /u01/RIS/source/oradata/*.dbf /u02/RISCLON/oradata/
6. After copying all datafiles, release the database from backup mode.
SQL> alter database end backup;
7. Switch the current log file and note down the oldest log sequence number
SQL> alter system switch logfile;
SQL> archive log list;
8. Copy all archive log files generated during FIRST old log sequence no. to the
LAST old log sequence no. during which the database was in backup mode.
9. Take the control file trace backup to the trace path
SQL> alter database backup controlfile to trace;
10. Create appropriate directory structure for the clone database and specify the
same
$ cd /u02/RISCLON
$ mkdir bdump udump
11. Edit the clone database parameter file and make necessary changes to the clone
database
$ cd /u02/RISCLON
$ vi initRISCLON.ora
db_name=RISCLON
control_files=/u02/RISCLON/oradata/cntrl01.ctl
background_dump_dest=/u02/RISCLON/bdump
user_dump_dest=/u02/RISCLON/udump
. . .
. . .
:wq!
12. Startup the cloned database in NOMOUNT phase.
$ export ORACLE_SID=RISCLON
SQL> startup nomount pfile=/u02/RISCLON/initRISCLON.ora
13. Create the control file for the clone database using the trace control file.
CREATE CONTROLFILE SET DATABASE RISCLON RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 /u02/RISCLON/oradata/redo01.log SIZE 5M,
GROUP 2 /u02/RISCLON/oradata/redo02.log SIZE 5M,
DATAFILE
/u02/RISCLON/oradata/system01.dbf,
/u02/RISCLON/oradata/undotbs01.dbf,
/u02/RISCLON/oradata/sysaux01.dbf,
/u02/RISCLON/oradata/users01.dbf,
/u02/RISCLON/oradata/example01.dbf
CHARACTER SET AL32UTF8;
14. Create the control file by running trace file from the trace path
SQL> @u01/RIS/source/udump/cntrl.sql
15. Recover the database using backup controlfile option.
SQL> recover database using backup controlfile until cancel;
16. You will be prompted to feed the archive log files henceforth. Specify the
absolute path and file name for the archive log files and keep feeding them until
you cross the LAST old sequence no. (Refer: Step 8), type CANCEL to end the media
recovery.
17. Open the database with resetlogs option.
SQL> alter database open resetlogs;
METHOD 3 : RMAN CLONING
RMAN provides the DUPLICATE command, which uses the backups of the database to
create the clone database. Files are restored to the target database, after which
an incomplete recovery is performed and the clone database is opened using
RESETLOGS option. All the preceding steps are performed automatically by RMAN
without any intervention from the DBA.
Considerations:

Source Database Name: RIS


Clone Database Name: RISCLON
Source Database physical files path=/u01/RIS/oradata
Cloned Database physical files path=/u02/RISCLON/oradata
Steps to be followed:

1. Parameter file backup.


If RIS database is using spfile,
SQL> create pfile=/u02/RISCLON/initRISCLON.ora from spfile;
If database is using pfile, use OS command to copy the pfile to a backup location.
2. Create appropriate directory structure for the clone database
$ cd /u02/RISCLON
$ mkdir bdump udump
3. Edit the clone database parameter file
$ cd /u02/RISCLON
$ vi initRISCLON.ora
db_name=RISCLON
control_files=/u02/RISCLON/oradata/cntrl01.ctl
db_file_name_convert=(/u01/RIS/oradata,/u02/RISCLON/oradata)
# This parameter specifies from where to where the datafiles should be cloned
log_file_name_convert=(/u01/RIS/oradata,/u02/RISCLON/oradata)
# This parameter specifies from where to where the redologfiles should be cloned
background_dump_dest=/u02/RISCLON/bdump
user_dump_dest=/u02/RISCLON/udump
. . .
. . .
:wq!
NOTE: db_file_name_convert and log_file_name_convert parameters are required only
if the source database directory structure and clone database directory structure
differs.
4. Configure the listener using listener.ora file and start the listener
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = RIS)
(ORACLE_HOME = /u01/oracle/product/10.2.0/db_1/)
(SID_NAME =RIS)
)
(SID_DESC =
(GLOBAL_DBNAME = RISCLON)
(ORACLE_HOME = /u02/oracle/product/10.2.0/db_1/)
(SID_NAME =RISCLON)
)
)
5. Add the following information to the tnsnames.ora file.
con_RISCLON =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 200.168.1.22)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = RISCLON)
)
)
NOTE: Copy the backup pieces from the source server to destination server manually
if youre cloned database is located in different server and configure the listener
and tnsnames accordingly. If you had configured both environments in catalog
database, the coping of backup is not necessary.
6. Startup the database in NOMOUNT stage and exit.
$ export ORACLE_SID=RISCLON
SQL> startup nomount pfile=/u02/RISCLON/initRISCLON.ora
SQL> exit
7. Start RMAN, make RIS as target and RISCLON as auxiliary.
$ export ORACLE_SID=RIS
$ rman target / auxiliary sys/sys@con_RISCLON
8. Issue the RMAN DUPLICATE command to start the cloning process.
RMAN> duplicate target database to RISCLON;
NOTE: The preceding command restores all files from the backup of the target
database to the clone database destination using all available archive log files
and also RMAN opens the clone database with resetlogs option.

You might also like