Today, I was working with a code base still in development, but really wanted to use it against the latest production data. To achieve this, I used Oracle 11g’s Recovery Manager, “RMAN”, to duplicate the latest content of my production database onto a development Oracle server that I have set up to work with my development code. Let us assume that my production database name was “prodDb” residing on server “prodServer”, the database I was creating is “devDb” residing on “devServer”.
First, I needed to create some directories on devServer.
mkdir -p /u01/app/oracle/admin/devDb/adump mkdir -p /u01/app/oracle/flash_recovery_area/devDb mkdir -p /u01/oradata/devDb
Then, on devServer, I used the scp command to copy the prodServer password file to devServer.
scp prodServer:/u01/app/oracle/product/ver_no/db_1/dbs/orapwproddb $ORACLE_HOME/dbs/.
Next, I created a dummy init file so we can mount this empty devDb database.
echo 'DB_NAME=devDb' > $ORACLE_HOME/dbs/initdevDb.ora echo 'control_files=(/u01/oradata/devDb/control01.ctl,/u01/oradata/devDb/control02.ctl,/u01/oradata/devDb/control03.ctl)' >> $ORACLE_HOME/dbs/initdevDb.ora
I mounted devDb, then restarted the listener.
(From terminal prompt, log in to SQL*Plus as sysdba) sqlplus /nolog conn / as sysdba (SQL*Plus command to mount database) startup nomount pfile=$ORACLE_HOME/dbs/initdevDb.ora; exit; (Back in terminal prompt, restart the listener) lsnrctl stop lsnrctl start
My work on the devServer was then done. I moved on to the prodServer machine; from the terminal prompt of the prodServer, I started RMAN.
(From terminal prompt, run "rman") rman (In RMAN prompt, connect to prodDb as target, and to devDb as the auxiliary) connect target sys@prodDb connect auxiliary sys@devDb (In RMAN, run the following script; you may wish to modify to suit your needs, of course) run { duplicate target database to devDb from active database spfile parameter_value_convert 'prodDb','devDb' set db_unique_name='devDb' set service_names='devDb.mydomain.com' set log_file_name_convert='prodDb','devDb' set log_archive_config='' set fal_client='' set fal_server='' set log_archive_dest_1='' set memory_max_target='1200m' set memory_target='1200m' set sga_max_size='800m' set sga_target='800m' set db_recovery_file_dest_size = '20G' db_file_name_convert 'prodDb','devDb' ; }