How to clone ORACLE_HOME in 19c

I find that’s a good idea to have a different ORACLE_HOME when it comes to patching or maybe you want to have the same oracle home setup in a lower environment than PROD. The cloning comes in very handy rather doing the whole installation (including whatever patches have been deployed in the past) again.

One may start thinking that can be achieved with utility, but as Oracle stated, this utility is deprecated starting with 19c. Now we have “golden image” concept.

Below I will clone the existing ORACLE_HOME to the same server but different path. This strategy is very good if you want to have minimum downtime for patching.

Let’s consider the following setup:

Actual ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1
New    ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_2
  1. Create GOLDEN IMAGE
--- create the folder for golden image
[[email protected] u01]$ mkdir -p /u01/19.3_goldimage
[[email protected] u01]$ echo $ORACLE_HOME

--- create the golden image
[[email protected] u01]$ $ORACLE_HOME/runInstaller -createGoldImage -destinationLocation /u01/19.3_goldimage -silent
Launching Oracle Database Setup Wizard...

Successfully Setup Software.
Gold Image location: /u01/19.3_goldimage/

2. Unzip the golden image to the new ORACLE_HOME

[[email protected] u01]$ mkdir -p /u01/app/oracle/product/19.0.0/dbhome_2
[[email protected] u01]$ cd /u01/app/oracle/product/19.0.0/dbhome_2
[[email protected] dbhome_2]$ unzip  -oq /u01/19.3_goldimage/

3. Proceed with installation

[[email protected] dbhome_2]$ export CV_ASSUME_DISTID=OEL7.6
[[email protected] dbhome_2]$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_2
[[email protected] dbhome_2]$
[[email protected] dbhome_2]$
[[email protected] dbhome_2]$
[[email protected] dbhome_2]$ echo $ORACLE_HOME
[[email protected] dbhome_2]$ ${ORACLE_HOME}/runInstaller -ignorePrereq -waitforcompletion -silent \
         -responseFile ${ORACLE_HOME}/install/response/db_install.rsp \
         oracle.install.option=INSTALL_DB_SWONLY \
         UNIX_GROUP_NAME=oinstall \
         oracle.install.db.InstallEdition=EE \
         oracle.install.db.OSDBA_GROUP=dba \
         oracle.install.db.OSBACKUPDBA_GROUP=dba \
         oracle.install.db.OSDGDBA_GROUP=dba \
         oracle.install.db.OSKMDBA_GROUP=dba \
         oracle.install.db.OSRACDBA_GROUP=dba \
Launching Oracle Database Setup Wizard...

[WARNING] [INS-13014] Target environment does not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/InstallActions2021-06-16_10-26-20AM/installActions2021-06-16_10-26-20AM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /u01/app/oraInventory/logs/InstallActions2021-06-16_10-26-20AM/installActions2021-06-16_10-26-20AM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
The response file for this session can be found at:

You can find the log of this install session at:

As a root user, execute the following script(s):
        1. /u01/app/oracle/product/19.0.0/dbhome_2/

Execute /u01/app/oracle/product/19.0.0/dbhome_2/ on the following nodes:

Successfully Setup Software with warning(s).
[[email protected] dbhome_2]$

3. Execute script from the new ORACLE_HOME

[[email protected] ~]# /u01/app/oracle/product/19.0.0/dbhome_2/
Check /u01/app/oracle/product/19.0.0/dbhome_2/install/root_ol8-19-dg1.local_2021-06-16_10-28-28-680868456.log for the output of root script
[[email protected] ~]#

That’s all.


  1. Pingback: Rolling Database Upgrade from to Using Transient Logical Standby – Another Oracle blog

Leave Comment

Your email address will not be published. Required fields are marked *