Vous êtes sur la page 1sur 13

Cloning A Database On The Same Server Using Rman Duplicate From Active Database

Alejandro Vargas | rincipal Support Consultant Oracle Advanced Customer Services

To clone a database using Rman !e used to re"uire an e#isting Rman bac$up% on &&g !e can clone databases using the '(rom active) database option* +n this case !e do not re"uire an e#isting bac$up% the active data(iles !ill be used as the source (or the clone* +n order to clone !ith the source database open it must be on archivelog mode* Other!ise !e can ma$e the clone mounting the source database% as sho!n in this e#ample* These are the steps re"uired to complete the clone,

Con(igure The -et!or$ **************************************************************************************. Create A ass!ord File For The -e! Database************************************************/ Create An +nit*Ora For The -e! Database*********************************************************/ Create The Admin Director0 For The -e! Database ****************************************1 Shutdo!n And Startup 2ount The Source Database*****************************************1 Startup -omount The -e! Database ****************************************************************1 Connect To The Target 3Source4 And Au#iliar0 3-e! Clone4 Databases Using Rman ******************************************************************************************************************1 5#ecute The Duplicate Command**********************************************************************6 Remove The Old (ile***************************************************************************************&. Chec$ The -e! Database********************************************************************************&.

&7&/

Cloning A Database On The Same Server Using Rman Duplicate From Active Database
Configure The Network
8e need to con(igure the net!or$ so that there is connectivit0 to the target 3source4 database and to the database !e !ant to create 3the clone4 Listener file:
# listener.ora Network Configuration File: /oracle/app/product/11.2.0/dbhome 1/network/admin/listener. ora # !enerated b" #racle configuration tools. $%& '%$( '%$()N)* + ,$%& '%$( + ,$%& &)$C + ,!'#-.' &-N./) + redpanda0 ,#*.C') 1#/) + /oracle/app/product/11.2.0/dbhome 10 ,$%& N./) + redpanda0 0 ,$%& &)$C + ,!'#-.' &-N./) + rmancat0 ,#*.C') 1#/) + /oracle/app/product/11.2.0/dbhome 10 ,$%& N./) + rmancat0 0 0 '%$()N)* + ,&)$C*%2(%#N '%$( + ,&)$C*%2(%#N + ,.&&*)$$ + ,2*#(#C#' + %2C0,3)4 + redpanda00 0 ,&)$C*%2(%#N + ,.&&*)$$ + ,2*#(#C#' + %2C0,3)4 + rmancat00 0 ,&)$C*%2(%#N + ,.&&*)$$ + ,2*#(#C#' + (C20,1#$( + ln510,2#*( + 162100 0 0 .&* -.$) '%$()N)* + /oracle/app

Tnsnames file:
redpanda +

.7&/

Cloning A Database On The Same Server Using Rman Duplicate From Active Database
,&)$C*%2(%#N + ,.&&*)$$ + ,2*#(#C#' + (C20,1#$( + ln510,2#*( + 162100 ,C#NN)C( &.(. + ,$)*7)* + &)&%C.()&0 ,$)*7%C) N./) + redpanda0 0 0 rmancat + ,&)$C*%2(%#N + ,.&&*)$$ + ,2*#(#C#' + (C20,1#$( + ln510,2#*( + 162100 ,C#NN)C( &.(. + ,$)*7)* + &)&%C.()&0 ,$)*7%C) N./) + rmancat0 0 0

Create A Password File For The New Database


8oracle9ln51 dbs:; orapwd file+orapwredpanda password+oracle

Create An Init.Ora For The New Database


Create the p(ile using create p(ile (rom sp(ile (rom the source database% then edit it changing all occurrences o( old database name to ne! name
<.audit file dest+=/oracle/app/admin/redpanda/adump= <.audit trail+=db= <.compatible+=11.2.0.0.0= #<.control files+=> <.db block si?e+@1A2 <.db create file dest+=/oracle/app/oradata= <.db domain+== <.db name+=redpanda= <.db recoBer" file dest+=/oracle/app/flash recoBer" area= <.db recoBer" file dest si?e+C0DA11CE62 <.diagnostic dest+=/oracle/app= <.dispatchers+=,2*#(#C#'+(C20 ,$)*7%C)+redpandaF&-0= <.memor" target+2G21CC000 <.open cursors+D00 <.processes+160 <.remote login passwordfile+=)FC'H$%7)=

/7&/

Cloning A Database On The Same Server Using Rman Duplicate From Active Database
<.undo tablespace+=HN&#(-$1=

Create The Admin Directory For The New Database


mkdir Ip /oracle/app/admin/redpanda/adump

hutdown And tartu! "ount The ource Database


This is re"uired i( the source database is in no archivelog mode*
$J'K shutdown immediateL &atabase closed. &atabase dismounted. #*.C') instance shut down. $J'K startup mount #*.C') instance started.

tartu! Nomount The New Database


$J'K startup nomount #*.C') instance started.

Connect To The Target # ource$ And Au%iliary #New Clone$ Databases &sing 'man
8oracle9ln51 dbs:; *man target s"s/oracle9rmancat au5iliar" s"s/oracle9redpanda *ecoBer" /anager: *elease 11.2.0.1.0 M 2roduction on $at /ar 20 1E:00:C6 2010 Cop"right ,c0 1A@2N 200AN #racle and/or its affiliates. .ll rights reserBed. connected to target database: */.NC.( ,&-%&+DEAA@AG2D@N not open0 connected to au5iliar" database: *)&2.N&. ,not mounted0

17&/

Cloning A Database On The Same Server Using Rman Duplicate From Active Database
(%ecute The Du!licate Command
*/.NK &H2'%C.() (.*!)( &.(.-.$) (# *)&2.N&. F*#/ .C(%7) &.(.-.$)L
$tarting &uplicate &b at 20M/.*M10 using target database control file instead of recoBer" catalog allocated channel: #*. .HF &%$3 1 channel #*. .HF &%$3 1: $%&+1A deBice t"pe+&%$3 contents of /emor" $cript: O sPl clone Qcreate spfile from memor"QL R e5ecuting /emor" $cript sPl statement: create spfile from memor" contents of /emor" $cript: O shutdown clone immediateL startup clone nomountL R e5ecuting /emor" $cript #racle instance shut down connected to au5iliar" database ,not started0 #racle instance started (otal $"stem !lobal .rea Fi5ed $i?e 7ariable $i?e &atabase -uffers *edo -uffers 2GDGDA0C0 b"tes 1DD6@A2 20662CDAG 6C626A62 2262@00 b"tes b"tes b"tes b"tes

contents of /emor" $cript: O sPl clone Qalter s"stem set control files + ==/oracle/app/oradata/*)&2.N&./controlfile/o1 mf 6tArsB@E .ctl= =N ==/oracle/app/flash recoBer" area/*)&2.N&./controlfile/o1 mf 6tAr sB@S .ctl== comment+ ==$et b" */.N== scope+spfileQL sPl clone Qalter s"stem set db name + ==*/.NC.(== comment+ ==/odified b" */.N duplicate== scope+spfileQL sPl clone Qalter s"stem set db uniPue name +

67&/

Cloning A Database On The Same Server Using Rman Duplicate From Active Database
==*)&2.N&.== comment+ ==/odified b" */.N duplicate== scope+spfileQL shutdown clone immediateL startup clone force nomount backup as cop" current controlfile au5iliar" format =/oracle/app/oradata/*)&2.N&./controlfile/o1 mf 6tArsBA1 .ctl=L restore clone controlfile to =/oracle/app/flash recoBer" area/*)&2.N&./controlfile/o1 mf 6tArs BAE .ctl= from =/oracle/app/oradata/*)&2.N&./controlfile/o1 mf 6tArsBA1 .ctl=L sPl clone Qalter s"stem set control files + ==/oracle/app/oradata/*)&2.N&./controlfile/o1 mf 6tArsBA1 .ctl= =N ==/oracle/app/flash recoBer" area/*)&2.N&./controlfile/o1 mf 6tAr sBAE .ctl== comment+ ==$et b" */.N== scope+spfileQL shutdown clone immediateL startup clone nomountL alter clone database mountL R e5ecuting /emor" $cript sPl statement: alter s"stem set control files + ==/oracle/app/oradata/*)&2.N&./controlfile/o1 mf 6tArsB@E .ctl==N ==/oracle/app/flash recoBer" area/*)&2.N&./controlfile/o1 mf 6tAr sB@S .ctl== comment+ ==$et b" */.N== scope+spfile sPl statement: alter s"stem set db name + ==*/.NC.(== comment+ ==/odified b" */.N duplicate== scope+spfile sPl statement: alter s"stem set db uniPue name + ==*)&2.N&.== comment+ ==/odified b" */.N duplicate== scope+spfile #racle instance shut down #racle instance started (otal $"stem !lobal .rea Fi5ed $i?e 7ariable $i?e &atabase -uffers *edo -uffers 2GDGDA0C0 b"tes 1DD6@A2 20662CDAG 6C626A62 2262@00 b"tes b"tes b"tes b"tes

$tarting backup at 20M/.*M10 allocated channel: #*. &%$3 1 channel #*. &%$3 1: $%&+1@ deBice t"pe+&%$3 channel #*. &%$3 1: starting datafile cop" cop"ing current control file

97&/

Cloning A Database On The Same Server Using Rman Duplicate From Active Database
output file name+/oracle/app/product/11.2.0/dbhome 1/dbs/snapcf rmancat.f tag+(.!20100D20(1E012C *)C%&+D $(./2+E1C16E2@6 channel #*. &%$3 1: datafile cop" completeN elapsed time: 00:00:0D Finished backup at 20M/.*M10 $tarting restore at 20M/.*M10 allocated channel: #*. .HF &%$3 1 channel #*. .HF &%$3 1: $%&+1A deBice t"pe+&%$3 channel #*. .HF &%$3 1: copied control file cop" Finished restore at 20M/.*M10 sPl statement: alter s"stem set control files + ==/oracle/app/oradata/*)&2.N&./controlfile/o1 mf 6tArsBA1 .ctl==N ==/oracle/app/flash recoBer" area/*)&2.N&./controlfile/o1 mf 6tAr sBAE .ctl== comment+ ==$et b" */.N== scope+spfile #racle instance shut down connected to au5iliar" database ,not started0 #racle instance started (otal $"stem !lobal .rea Fi5ed $i?e 7ariable $i?e &atabase -uffers *edo -uffers database mounted contents of /emor" $cript: O set newname for clone datafile 1 set newname for clone datafile 2 set newname for clone datafile D set newname for clone datafile C backup as cop" reuse datafile 1 au5iliar" format new datafile 2 au5iliar" format new datafile D au5iliar" format new datafile C au5iliar" format new L R e5ecuting /emor" $cript e5ecuting command: $)( N)TN./) e5ecuting command: $)( N)TN./) 2GDGDA0C0 b"tes 1DD6@A2 20662CDAG 6C626A62 2262@00 b"tes b"tes b"tes b"tes

to to to to

newL newL newL newL

:7&/

Cloning A Database On The Same Server Using Rman Duplicate From Active Database
e5ecuting command: $)( N)TN./) e5ecuting command: $)( N)TN./) $tarting backup at 20M/.*M10 using channel #*. &%$3 1 channel #*. &%$3 1: starting datafile cop" input datafile file number+00001 name+/oracle/app/oradata/*/.NC.(/datafile/o1 mf s"stem 6tASpPG? . dbf output file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf s"stem 0@lA2bEr .dbf tag+(.!20100D20(1E01CG channel #*. &%$3 1: datafile cop" completeN elapsed time: 00:01:26 channel #*. &%$3 1: starting datafile cop" input datafile file number+00002 name+/oracle/app/oradata/*/.NC.(/datafile/o1 mf s"sau5 6tASpPfm . dbf output file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf s"sau5 0AlA2bag .dbf tag+(.!20100D20(1E01CG channel #*. &%$3 1: datafile cop" completeN elapsed time: 00:01:16 channel #*. &%$3 1: starting datafile cop" input datafile file number+0000D name+/oracle/app/oradata/*/.NC.(/datafile/o1 mf undotbs1 6tASpPSC .dbf output file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf undotbs1 0alA2bc s .dbf tag+(.!20100D20(1E01CG channel #*. &%$3 1: datafile cop" completeN elapsed time: 00:00:0E channel #*. &%$3 1: starting datafile cop" input datafile file number+0000C name+/oracle/app/oradata/*/.NC.(/datafile/o1 mf users 6tASpPl? .d bf output file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf users 0blA2bdD . dbf tag+(.!20100D20(1E01CG channel #*. &%$3 1: datafile cop" completeN elapsed time: 00:00:01 Finished backup at 20M/.*M10 contents of /emor" $cript: O switch clone datafile allL R e5ecuting /emor" $cript datafile 1 switched to datafile cop"

;7&/

Cloning A Database On The Same Server Using Rman Duplicate From Active Database
input datafile cop" *)C%&+D $(./2+E1C16ECEG file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf .dbf datafile 2 switched to datafile cop" input datafile cop" *)C%&+C $(./2+E1C16ECEG file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf .dbf datafile D switched to datafile cop" input datafile cop" *)C%&+6 $(./2+E1C16ECEG file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf s .dbf datafile C switched to datafile cop" input datafile cop" *)C%&+G $(./2+E1C16ECEG file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf dbf contents of /emor" $cript: O recoBer clone database noredo delete archiBelog L R e5ecuting /emor" $cript $tarting recoBer at 20M/.*M10 allocated channel: #*. .HF &%$3 1 channel #*. .HF &%$3 1: $%&+1@ deBice t"pe+&%$3 Finished recoBer at 20M/.*M10 contents of /emor" $cript: O shutdown clone immediateL startup clone nomountL sPl clone Qalter s"stem set db name + ==*)&2.N&.== comment+ ==*eset to original Balue b" */.N== scope+spfileQL sPl clone Qalter s"stem reset db uniPue name scope+spfileQL shutdown clone immediateL startup clone nomountL R e5ecuting /emor" $cript database dismounted #racle instance shut down connected to au5iliar" database ,not started0 #racle instance started s"stem 0@lA2bEr

s"sau5 0AlA2bag

undotbs1 0alA2bc

users 0blA2bdD .

<7&/

Cloning A Database On The Same Server Using Rman Duplicate From Active Database
(otal $"stem !lobal .rea Fi5ed $i?e 7ariable $i?e &atabase -uffers *edo -uffers 2GDGDA0C0 b"tes 1DD6@A2 20662CDAG 6C626A62 2262@00 b"tes b"tes b"tes b"tes

sPl statement: alter s"stem set db name + ==*)&2.N&.== comment+ ==*eset to original Balue b" */.N== scope+spfile sPl statement: alter s"stem reset #racle instance shut down connected to au5iliar" database ,not started0 #racle instance started (otal $"stem !lobal .rea 2GDGDA0C0 b"tes db uniPue name scope+spfile

Fi5ed $i?e 1DD6@A2 b"tes 7ariable $i?e 20662CDAG b"tes &atabase -uffers 6C626A62 b"tes *edo -uffers 2262@00 b"tes sPl statement: C*).() C#N(*#'F%') *)H$) $)( &.(.-.$) Q*)&2.N&.Q *)$)('#!$ N#.*C1%7)'#! /.F'#!F%')$ 1G /.F'#!/)/-)*$ D /.F&.(.F%')$ 100 /.F%N$(.NC)$ @ /.F'#!1%$(#*4 2A2 '#!F%') !*#H2 1 $%U) 60 / N !*#H2 2 $%U) 60 / N !*#H2 D $%U) 60 / &.(.F%') =/oracle/app/oradata/*)&2.N&./datafile/o1 mf s"stem 0@lA2bEr .d bf= C1.*.C()* $)( T)@/$T%N1262 contents of /emor" $cript: O set newname for clone tempfile 1 to newL switch clone tempfile allL catalog clone datafilecop" Q/oracle/app/oradata/*)&2.N&./datafile/o1 mf s"sau5 0AlA2bag .dbf QN Q/oracle/app/oradata/*)&2.N&./datafile/o1 mf undotbs1 0alA2bcs . dbfQN

&=7&/

Cloning A Database On The Same Server Using Rman Duplicate From Active Database
Q/oracle/app/oradata/*)&2.N&./datafile/o1 mf users 0blA2bdD .dbf QL switch clone datafile allL R e5ecuting /emor" $cript e5ecuting command: $)( N)TN./) renamed tempfile 1 to /oracle/app/oradata/*)&2.N&./datafile/o1 mf temp Vu .tmp in control file cataloged datafile cop" datafile cop" file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf s"sau5 0AlA2bag .dbf *)C%&+1 $(./2+E1C16E60D cataloged datafile cop" datafile cop" file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf undotbs1 0alA2bc s .dbf *)C%&+2 $(./2+E1C16E60D cataloged datafile cop" datafile cop" file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf users 0blA2bdD . dbf *)C%&+D $(./2+E1C16E60D datafile 2 switched to datafile cop" input datafile cop" *)C%&+1 $(./2+E1C16E60D file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf s"sau5 0AlA2bag .dbf datafile D switched to datafile cop" input datafile cop" *)C%&+2 $(./2+E1C16E60D file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf undotbs1 0alA2bc s .dbf datafile C switched to datafile cop" input datafile cop" *)C%&+D $(./2+E1C16E60D file name+/oracle/app/oradata/*)&2.N&./datafile/o1 mf users 0blA2bdD . dbf contents of /emor" $cript: O .lter clone database open resetlogsL R e5ecuting /emor" $cript database opened Finished &uplicate &b at 20M/.*M10

&&7&/

Cloning A Database On The Same Server Using Rman Duplicate From Active Database
'emo)e The Old Pfile
The duplicate database created an sp(ile that has the ne! control(ile names in it% the old p(ile% !ithout control(iles can be removed
8oracle9ln51 dbs:; rm initredpanda.ora

Check The New Database


#*.C') $%&+redpanda #*.C') 1#/)+/oracle/app/product/11.2.0/dbhome 1 8oracle9ln51 dbs:; sPlplus / as s"sdba $J'<2lus: *elease 11.2.0.1.0 2roduction on $at /ar 20 1E:D1:CG 2010 Cop"right ,c0 1A@2N 200AN #racle. .ll rights reserBed.

Connected to: #racle &atabase 11g )nterprise )dition *elease 11.2.0.1.0 M 2roduction Tith the 2artitioningN #'.2N &ata /ining and *eal .pplication (esting options $J'K archiBe log list &atabase log mode .utomatic archiBal .rchiBe destination #ldest online log sePuence Current log sePuence No .rchiBe /ode &isabled H$) &- *)C#7)*4 F%') &)$( 1 1

$J'K select name from B;datafileL N./) MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM / oracle/app/oradata/*)&2.N&./datafile/o1 mf s"stem 0@lA2bEr .dbf / oracle/app/oradata/*)&2.N&./datafile/o1 mf s"sau5 0AlA2bag .dbf

&.7&/

Cloning A Database On The Same Server Using Rman Duplicate From Active Database
/ oracle/app/oradata/*)&2.N&./datafile/o1 mf undotbs1 0alA2bc s .dbf / oracle/app/oradata/*)&2.N&./datafile/o1 mf users 0blA2bdD . dbf $J'K show sga (otal $"stem !lobal .rea Fi5ed $i?e 7ariable $i?e &atabase -uffers *edo -uffers 2GDGDA0C0 1DD6@A2 20AE1@E00 60DD1GC@ 2262@00 b"tes b"tes b"tes b"tes b"tes

&/7&/

Vous aimerez peut-être aussi