Cloning Your Oracle Installation

Share Button

If there is one thing a DBA hates it is to waste time. Particularly on boring and tedious tasks. One such task is installing Oracle on a new system (or duplicating a home on an existing system) which generally involves X server setup (Xming for Windows, XQuartz on Mac, pure as the driven snow on Linux) and obnoxious Oracle Installer GUI screens.

Yet despite the widespread angst at performing Oracle installs, I’m surprised at the number of clients and DBAs I see trudging through Next buttons on every single server to get it installed. Nevermind the fact that with modern server deployment we should be able to create new systems which already have Oracle installed and configured; a DBA can clone Oracle Homes from server to server even if enterprise provisioning not an option.

Cloning the Oracle Home is done through simple tools: cp if you are cloning on the same server, tar (or other tools) and scp to go to a new server, and the vanilla runInstaller package from Oracle conveniently located in $ORACLE_HOME/oui/bin.

In the steps above, we copied the ORACLE_HOME located at /u01/app/oracle/product/11.2.0/db_1 to another directory (/u01/app/oracle/product/11.2.0/db_2). If you use the cp command, make sure you use the -rp flags; -r copies directories recursively, and -p preserves file attributes. You may also notice that a few files could not be copied. Don’t worry about these, when we run the installer it will take care of that.

Once the copy (or tar/untar between servers) is complete, the rest is simple. We will run the runInstaller command in the new Oracle Home and provide the information it requires. This is done silently, so no X Windows server is required at all.

The actual command we used was:

./runInstaller -silent -clone ORACLE_BASE=”/u01/app/oracle” ORACLE_HOME=”/u01/app/oracle/product/11.2.0/db_2″ ORACLE_HOME_NAME=”OraHome2″

These flags defined:

  • -silent: specifies that the command should be done without interaction
  • -clone: specifies that the home is a clone of another location
  • ORACLE_BASE: the base directory for Oracle products as per the Optimal Flexible Architecture (OFA)
  • ORACLE_HOME: the new directory location
  • ORACLE_HOME_NAME: a unique name for the Oracle Home for the server you have cloned to

Once you have finished running the command and have confirmed success, the standard root.sh (and orainstRoot.sh if this is the first Oracle install on the server) execution by the root user applies.

Good luck, and happy cloning!

Share Button

2 Responses to “Cloning Your Oracle Installation”

  1. jkstill says:

    Interesting, I’ve never used runInstaller in that manner.
    I have used clone.pl a number of times to clone an oracle home – runInstaller is possible just another way to run clone.pl – the parameters look similar.

  2. Pavan Kumar says:

    Hi,

    I think we have other option for cloning Oracle Home,

    $ORACLE_HOME/perl/bin/perl clone.pl

    http://docs.oracle.com/cd/E11882_01/install.112/e16763/app_cloning.htm

Leave a Reply