Now days it is very easy to clone an Oracle Home, where in the old days a lot of additional steps were required as the RDBMS instance was part of the Oracle home. My advise is to make use of the utility server which is hosting a dedicate non-used ORACLE HOME. This home can be used as golden image.

Perform software only install is always so easy. And can be reused like now. Similar steps can be accomplished using Enterprise Manager 12c Cloud Control, but I still believe the command line part are much easier and more time saving.

a) Make sure no process is using the Oracle home you want to clone.

b) Create a zip or tar file of the ORACLE_HOME.

c) Copy the file to the server where you require the new home and extract the tar of zip file


 tar -cvf rdbms12c_dbhome_1.tar /u01/app/oracle/product/12.1.0/dbhome_1
 zip -r rdbms12c_dbhome_1.zip /u01/app/oracle/product/12.1.0/dbhome_1
 Make sure you only define the dbhome_N location.
 

d) Copy the file to the server where you require the new home and extract the tar of zip file

e) Now it is time to execute the clone perl script, which can be found in $ORACLE_HOME/clone/bin/


$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/clone/bin/clone.pl ORACLE_BASE="/u01/app/oracle/" ORACLE_HOME="/u01/app/oracle/product/12.1.0/dbhome_1"  OSDBA_GROUP=dba -defaultHomeName

f) Run as root user, the script reported in step 4.

The clone is performed, in addition you can check if no files exists in the dbs directory or network/admin. Next step is to create a listener and create the database.

If you need to apply patches in the future you use the initial zip file, unzip to a new Oracle home, clone it, apply the patches, zip it an distributed it to all your required systems. Very easy!

 

 

Below the output of the  above steps:

[oracle@server42 ~]$ lsof /u01/app/oracle/product/12.1.0/dbhome_1

[oracle@server42 ~]$ zip -r rdbms12c_dbhome_1.zip

/u01/app/oracle/product/12.1.0/dbhome_1

<output of the zip not added>

[oracle@server42 ~]$ ls -lh rdbms12c_dbhome_1.zip

-rw-r–r– 1 oracle oinstall 2.6G Mar 27 17:05 rdbms12c_dbhome_1.zip

[oracle@server42 tmp]$scp rdbms12c_dbhome_1.zip oracle@server43:/tmp/

[oracle@server43 ~]$ unzip -d / /tmp/rdbms12c_dbhome_1.zip

<output of the unzip not added>

[oracle@server43 dbhome_1]$ pwd
/u01/app/oracle/product/12.1.0/dbhome_1

[oracle@server43 ~]$  /u01/app/oracle/product/12.1.0/dbhome_1/perl/bin/perl /u01/app/oracle/product/12.1.0/dbhome_1/clone/bin/clone.pl ORACLE_BASE=”/u01/app/oracle/” ORACLE_HOME=”/u01/app/oracle/product/12.1.0/dbhome_1″ runInstaller -clone -waitForCompletion “ORACLE_BASE=/u01/app/oracle/” “ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1” -silent
-paramFile /u01/app/oracle/product/12.1.0/dbhome_1/clone/clone_oraparam.ini

Starting Oracle Universal Installer…

 

Checking Temp space: must be greater than 500 MB.
Actual 9425 MB    Passed

Checking swap space: must be greater than 500 MB.
Actual 3965 MB    Passed

Preparing to launch Oracle Universal Installer from
/tmp/OraInstall2014-03-29_05-47-10PM.

Please wait …

You can find the log of this install session at:

/u01/app/oraInventory/logs/cloneActions2014-03-29_05-47-10PM.log

…………………………………………..   5% Done.
…………………………………………..   10% Done.
…………………………………………..   15% Done.
…………………………………………..   20% Done.
…………………………………………..   25% Done.
…………………………………………..   30% Done.
…………………………………………..   35% Done.
…………………………………………..   40% Done.
…………………………………………..   45% Done.
…………………………………………..   50% Done.
…………………………………………..   55% Done.
…………………………………………..   60% Done.
…………………………………………..   65% Done.
…………………………………………..   70% Done.
…………………………………………..   75% Done.
…………………………………………..   80% Done.
…………………………………………..   85% Done.
…………………………………………..   90% Done.
…………………………………………..   95% Done.

Copy files in progress.

 
Copy files successful.

 
Link binaries in progress.

 
Link binaries successful.

 
Setup files in progress.

 
Setup files successful.

 
Setup Inventory in progress.

 
Setup Inventory successful.

 
Finish Setup in progress.

 
Finish Setup successful.
The cloning of OraHome1 was successful.

Please check ‘/u01/app/oraInventory/logs/cloneActions2014-03-29_05-47-10PM.log’ for more details.

 

As a root user, execute the following script(s):

  1. /u01/app/oraInventory/orainstRoot.sh
  2. /u01/app/oracle/product/12.1.0/dbhome_1/root.sh

…………………………………………..   100% Done.

 

[oracle@server43 ~]$ su – Password:

[root@server43 ~]# /u01/app/oraInventory/orainstRoot.sh

Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.

The execution of the script is complete.

 

[root@server43 ~]# /u01/app/oracle/product/12.1.0/dbhome_1/root.sh

Check /u01/app/oracle/product/12.1.0/dbhome_1/install/root_server43_2014-03-29_17-49-29.log for the output of root script