You are on page 1of 8

 

 
 
 
10 steps for cloning a database.

The following steps must be on Source -Production instance/Server

Step 1. Shutdown database in normal mode and start it up in restricted


mode.
Step 2. Take the backup of control file

Step 3. Shutdown database again in normal mode.

Step 4. Copy /FTP init parameter file ,control file script and all the
database file on the destination server/location, once all the files
are successfully copied, you may startup the database normally.

The following step must be on destination – Clone instance/server

Step 5. Edit init parameter file and control file script.

Step 6. New Environment setup .

Step 7. Connect with SQLPLUSl and recreate control file

Step 8. Open the database in resetlogs.

Step 9. Shutdown the database in normal mode

Step 10. Take the cold backup and start the database in archive/non
archive mode.
 
 
Step 1 – 3 on the Source Server ( Server A)
 
 
SQLPLUS> connect sys/password
Connected.

SQLPLUS> shutdown ;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQLPLUS> startup restrict


ORACLE instance started.
Total System Global Area 57124108 bytes
Fixed Size 70924 bytes
Variable Size 40198144 bytes
Database Buffers 16777216 bytes
Redo Buffers 77824 bytes
Database mounted.
Database opened.

SQLPLUS> alter database backup controlfile to trace;


Statement processed.
SQLPLUS>
SQLPLUS> show parameter user_dump_dest
NAME TYPE VALUE
----------------------------------- ------- -------------------------
user_dump_dest string E:\ora816\admin\ora816\udump
 
 
Note :- Backup control file will generate in user dump destination as above.
Check for the latest Ora<xxxxx>.trc . Rename this file to Ctrlprod.sql
 
SQLPLUS> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
 
 
 
 
 
1.All Parameter files 1.All Parameter files
2. Control  file 2. Control file
 
3. Datafiles 3. Datafiles
4. Redo log  files 4. Redo log files
 
 
Source – Production Destination – Clone Instance
Instance/Server /Server

 
 

 
Step 4: Copy all the parameter files (initsid.ora, configsid.ora ), Control files,
Ctrlprod.sql ( created as above) and all data files to clone server . It is good to
follow the OFA. If you are cloning a database on the same machine then create
a different directory structure ( as OFA) for cloning instance and copied all the
required files of primary instance here.
 
Step 4a : On Unix ( Let us say your cloning instance name is clone)
If you had followed OFA , your initsid.ora parameters files would be
in $ORACLE_BASE/admin/clone/pfile/initclone.ora
and configsid.ora would be in
$ORACLE_BASE/admin/clone/pfile/configclone.ora.

Create a symbolic link

Change the working directory to $ORACLE_HOME/dbs and create


a symbolic link
$ ln –s $ORACLE_BASE/admin/clone/pfile/initclone.ora
initclone.ora
  
Step 5 : On destination server

 
Change the following parameter in the initsid.ora of the cloning
instance/server

 
InitSid.ora (initora816.ora) of the InitSid.ora (initclone.ora) of the
Source/production server. destination/clone server.
   
db_name = "ora816" Db_name= “clone”
instance_name = ora816 Instance_name= clone
service_names = ora816 Service_name = clone
control_files = Control_file =
("e:\ora816\oradata\ora816\contro (“C:\clone\control01.ctl”,”D:\clone\control
l01.ctl", 02.ctl”)
"f:\ora816\oradata\ora816\control  
02.ctl",
"g:\ora816\oradata\ora816\control
03.ctl")
 

The other parameter which is required to change is user_dump_dest,


background_dump_dest,log_archive_dest
 

 
Oraxxxx.trc is copied from source/production instance to destination/clone
instance and renamed it as ctrlclone.sql .
 

Edit ctrlclone.sql as follows.


 
 
Oraxxxx.trc in user dump dest of Source/Production Ctrlclone.sql
instance
 
  /* Delete everything upto startup nomount */
STARTUP NOMOUNT STARTUP NOMOUNT pfile=f:\clone\initclone.or
CREATE CONTROLFILE REUSE DATABASE "ORA816" CREATE CONTROLFILE set DATABASE "CLONE"
NORESETLOGS ARCHIVELOG noarchivelog
MAXLOGFILES 32 MAXLOGFILES 32
MAXLOGMEMBERS 2 MAXLOGMEMBERS 2
MAXDATAFILES 32 MAXDATAFILES 32
MAXINSTANCES 16 MAXINSTANCES 16
MAXLOGHISTORY 1815 MAXLOGHISTORY 1815
LOGFILE LOGFILE
GROUP 1 'E:\ORA816\ORADATA\ORA816\REDO03.LOG' GROUP 1 'F:\CLONE\ORA816\REDO03.LOG'
SIZE 1M, SIZE 1M,
GROUP 2 'E:\ORA816\ORADATA\ORA816\REDO02.LOG' GROUP 2 'F:\CLONE\ORA816\REDO02.LOG'
SIZE 1M, SIZE 1M,
GROUP 3 'E:\ORA816\ORADATA\ORA816\REDO01.LOG' GROUP 3 'F:\CLONE\ORA816\REDO01.LOG'
SIZE 1M SIZE 1M
DATAFILE DATAFILE
'E:\ORA816\ORADATA\ORA816\SYSTEM01.DBF', 'F:\CLONE\ORA816\SYSTEM01.DBF',
'E:\ORA816\ORADATA\ORA816\RBS01.DBF', 'F:\CLONE\ORA816\RBS01.DBF',
'E:\ORA816\ORADATA\ORA816\TEMP01.DBF', 'F:\CLONE\ORA816\TEMP01.DBF',
'E:\ORA816\ORADATA\ORA816\TOOLS01.DBF', 'F:\CLONE\ORA816\TOOLS01.DBF',
'E:\ORA816\ORADATA\ORA816\INDX01.DBF', 'F:\CLONE\ORA816\INDX01.DBF',
'E:\ORA816\ORADATA\ORA816\DR01.DBF', 'F:\CLONE\ORA816\DR01.DBF',
'E:\ORA816\DATABASE\NGAR5ORA81601.DBF', 'F:\CLONE\DATABASE\NGAR5ORA81601.DBF',
'E:\ORA816\DATABASE\RBSTEST01.DBF' 'F:\CLONE\DATABASE\RBSTEST01.DBF'
CHARACTER SET WE8ISO8859P1 CHARACTER SET WE8ISO8859P1
; ;
# Recovery is required if any of the datafiles are restored # Recovery is required if any of the datafiles ar
backups, restored backups,
# or if the last shutdown was not normal or immediate. # or if the last shutdown was not normal or imm
RECOVER DATABASE #RECOVER DATABASE
# All logs need archiving and a log switch is needed. # All logs need archiving and a log switch is nee
ALTER SYSTEM ARCHIVE LOG ALL; #ALTER SYSTEM ARCHIVE LOG ALL;
# Database can now be opened normally. # Database can now be opened normally.
ALTER DATABASE OPEN; #ALTER DATABASE OPEN;
   
   
 
   
 
 
 
 
 

STEP 6 :-
 
ON NT :- You have to create a windows NT services as follows.
 
C:\>oradim -new -sid clone -srvc oracleserviceClone -intpwd oracle
-startmode auto -pfile f:\clone\initclone.ora
 
ON Unix :-

(A)   Change the working directory to /etc and edit the oratab file to put the
entry for CLOBE instance.

(B) Setup login profile for the Oracle user having dba group.
ORACLE_SID=CLONE
Export ORACLE_SID
Or .oraenv

 
 
STEP 7 :- Create controlfile as follows :-
 
Check in the initclone.ora REMOTE_LOGIN_PASSWORDFILE is set to
exclusive or shared. If this is set, then a valid passwordfile
should exist in ORACLE_HOME/dbs or created using orapwd as
 
orapwd file=/u01/oracle/V816/dbs/orapwV722 password=oracle entries=1

where /u01/oracle/V816 is an oracle home


 
 
SQLPLUS> @f:\clone\ctrlclone.sql
ORACLE instance started.
Total System Global Area 57123804 bytes
Fixed Size 70620 bytes
Variable Size 40198144 bytes
Database Buffers 16777216 bytes
Redo Buffers 77824 bytes
Statement processed.
 
STEP 8 :- Open the database in resetlog mode as follows.

 
SQLPLUS> alter database open resetlogs;

Statement processed.

 
STEP 9 :- Shutdown the database in Normal mode

 
SQLPLUS> connect internal/oracle
Connected.

SQLPLUS> shutdown ;
Database closed.
Database dismounted.
ORACLE instance shut down.

 
STEP 10 :- Take the cold backup and start the database in archive/non
archive mode.
 
 
 
Note :-

You cannot move datafiles from one operating system and use them on a different
operating system. Therefore, it is not possible to clone a database running on SUN
on an HP machine. You would have to use export/import.

You might also like