Friday, August 15, 2008


For a single-node Oracle install it is usually faster to clone the ORACLE_HOME than to re-install and re-apply patches.
Cloning can be done using OEM or manually using or runInstaller
Cloning guarantees that you have identical components installed on DEV, QA, PROD.
You can only clone between the same OS - e.g. from AIX to AIX.
It is possible to clone the ASM and DB ORACLE_HOME but not the OEM agent.

The process I followed to manually clone on AIX is as follows. You can find more information in Metalink Note 565009.1.

#1. prepare for cloning (this step currently does not do anything useful but it may be necessary in the future)
cd $ORACLE_HOME/clone/bin
chmod u+x
change /usr/local/bin/perl to /usr/bin/perl

#2. copy all files under $ORACLE_HOME to the destination directory or destination server (e.g use tar/ftp or scp).

#3. run the clone process (create new inventory or register the ORACLE_HOME with existing inventory, relink binaries etc)
# check the contents of /etc/oraInst.loc
more /etc/oraInst.loc
cd $ORACLE_HOME/clone/bin
chmod u+x
change /usr/local/bin/perl to /usr/bin/perl
# example clone the ASM ORACLE_HOME ( calls oui)
perl ORACLE_HOME="/opt/oracle/product/10.2.0/asm" ORACLE_HOME_NAME="ASM_HOME"
# example clone the DB ORACLE_HOME
perl ORACLE_HOME="/opt/oracle/product/10.2.0/db_1" ORACLE_HOME_NAME="db10g_home1"
# check the inventory to confirm the ORACLE_HOME is registered
more /opt/oracle/product/oraInventory/ContentsXML/inventory.xml

#4. ask unix team to run in each ORACLE_HOME

#5. for the ASM ORACLE_HOME ask the unix team to run the following as root to setup the cluster software
localconfig delete
localconfig add

# if you have problems cloning with you can directly call runInstaller but you do need an Xterm or VNC GUI session.

./runInstaller -clone ORACLE_HOME="/opt/oracle/product/10.2.0/owb" ORACLE_HOME_NAME="owb10g_home1"


$ORACLE_HOME/oui/bin/runInstaller -clone -silent -invPtrLoc $ORACLE_HOME/oraInst.loc ORACLE_HOME="$ORACLE_HOME" ORACLE_HOME_NAME="ORA10G2" -ignoreSysPrereqs | tee >> $LOG