Active database duplication summary



Today I've had to duplicate one of our DW environments to create another 'test' environment. To do this i made use of the rman active duplicate function - this is well documented in other peoples blogs (Tim's for instance https://oracle-base.com/articles/11g/duplicate-database-using-rman-11gr2#active_database_duplication) so i won't just repeat the process here - however i'll just restate a couple of points as i stumbled over them myself today.

1. Make sure you have the static entries in the listener.ora for the database you want to create - you have to use SIDS - service names and UR=A do not work
2. Make sure you have thr right f'ing oracle home listed in the listener.ora (this had me confused for hours and was throwing misleading invalid username/password messages)

Other than that - if you want it to run in parallel you use this syntax below

run{
allocate channel chan1 type disk;
allocate channel chan2 type disk;
allocate channel chan3 type disk;
allocate auxiliary channel achan1 type disk;
allocate auxiliary channel achan2 type disk;
allocate auxiliary channel achan3 type disk;
DUPLICATE DATABASE TO MYNEWDB FROM ACTIVE DATABASE;
}

That will create 3 sessions either side to theoretically make the whole process 3 times as fast (though in reality that's never the case)

Some quick stats on the process - in my case the database was 750GB ( a baby by the standard of some of the other copies) - the whole duplicate process took 2hrs 10 mins. In this case both machines were in the same subnet, both using ASM from a SAN

That's roughly 2GB/min/channel and that's without doing any special kind of huge data related transfer config.

Pretty good i thought.......

Comments