8i | 9i | 10g | 11g | 12c | 13c | 18c | 19c | 21c | 23c | Misc | PL/SQL | SQL | RAC | WebLogic | Linux

Home » Articles » Misc » Here

Oracle Universal Installer (OUI) Silent Installations

The Oracle Universal Installer (OUI) is a GUI tool requiring user input to define the type of installation to be performed. Alternatively, a response file can be used to provide all the required information for the installation, so no additional user input is required. The process of running silent installations is similar to using Kickstart for Linux installations. This article explains how to record a response file using the OUI.

Response Files

There are three ways of using a response file.

Prior to Oracle 11gR2, to create a response file you would start the OUI with the following command and perform an installation as normal. The "-record" parameter tells the installer to write to the response file and the "-destinationFile" parameter defines the name and location of the response file.

./runInstaller -record -destinationFile /tmp/10gR2.rsp

From 11gR2 onward the "-record" option is no longer supported. Instead, the final OUI screen before starting the installation always gives you the option of saving a response file.

Save Response File

The response files are quite large, containing a large number of parameters and comments. The following files are examples of response files from different Oracle Database versions.

Using Response Files : Basic

A silent installation is initiated using the following command. The "-silent" parameter indicates that this is a silent installation and the "-responseFile" parameter defines the name and location of the response file.

# Normal.
./runInstaller -silent -responseFile /tmp/12cR2.rsp

# Ignore Prerequisites.
./runInstaller -ignoreSysPrereqs -ignorePrereq -waitforcompletion -showProgress -silent -responseFile /tmp/12cR2.rsp

Some useful "runInstaller" flags include the following. The full list is available here.

-silent            : Run in silent mode.
-responsefile      : Specified the location of the response file. 
-ignoreSysPrereqs  : Ignore the system prerequisite checks.
-ignorePrereq      : Ignore the general prerequisite checks.
-waitforcompletion : Stop the installer spawning as a separate process, so scripts happen in sequence.
-invPtrLoc         : Used to specify the location of the oraInst.loc file, which in turn specifies the inventory details.
-force             : Installation continues when a non-empty directory is used for the ORACLE_HOME.
-showProgress      : Displays line of "." to show something is happeing.

Once the installation completes you will be prompted to run the root scripts. Once the root scripts are run as instructed, the installation is complete.

Using Response Files : Command Line Overrides

An alternative to amending a response file is to use the default response file from the media and alter the parameters inline. Here is an example of a 12cR1 installation using the default response file.

# 12cR1 and below.

./runInstaller -ignoreSysPrereqs -ignorePrereq -waitforcompletion -showProgress -silent \
    -responseFile /tmp/database/response/db_install.rsp \
    oracle.install.option=INSTALL_DB_SWONLY \
    ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
    UNIX_GROUP_NAME=oinstall \
    INVENTORY_LOCATION=${ORA_INVENTORY} \
    SELECTED_LANGUAGES=en,en_GB \
    ORACLE_HOME=${ORACLE_HOME} \
    ORACLE_BASE=${ORACLE_BASE} \
    oracle.install.db.InstallEdition=EE \
    oracle.install.db.DBA_GROUP=dba \
    oracle.install.db.OPER_GROUP=dba \
    oracle.install.db.BACKUPDBA_GROUP=dba \
    oracle.install.db.DGDBA_GROUP=dba \
    oracle.install.db.KMDBA_GROUP=dba \
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
    DECLINE_SECURITY_UPDATES=true

The OS group name parameters were renamed in 12cR2 to include a prefix of "OS" and the OSRACDBA parameter is now mandatory, as shown below.

# 12cR2.

./runInstaller -ignoreSysPrereqs -ignorePrereq -waitforcompletion -showProgress -silent \
    -responseFile /tmp/database/response/db_install.rsp \
    oracle.install.option=INSTALL_DB_SWONLY \
    ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
    UNIX_GROUP_NAME=oinstall \
    INVENTORY_LOCATION=${ORA_INVENTORY} \
    SELECTED_LANGUAGES=en,en_GB \
    ORACLE_HOME=${ORACLE_HOME} \
    ORACLE_BASE=${ORACLE_BASE} \
    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 \
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
    DECLINE_SECURITY_UPDATES=true

The "-ignoreSysPrereqs" and "-showProgress" parameters tell the installer to ignore any failed prerequisite checks and to show the installation process. The latter is very useful when scripting installations.

Once the installation completes you will be prompted to run the root scripts. Once the root scripts are run as instructed, the installation is complete.

Using Response Files : 18c Onward - Unzip to ORACLE_HOME

From Oracle 18c onward things are a little different as the software is unzipped into the Oracle home, then the installer is run.

# 18c.

cd $ORACLE_HOME
unzip -oq /path/to/software/LINUX.X64_180000_db_home.zip

./runInstaller -ignorePrereq -waitforcompletion -silent \
    -responseFile ${ORACLE_HOME}/install/response/db_install.rsp \
    oracle.install.option=INSTALL_DB_SWONLY \
    ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
    UNIX_GROUP_NAME=oinstall \
    INVENTORY_LOCATION=${ORA_INVENTORY} \
    SELECTED_LANGUAGES=en,en_GB \
    ORACLE_HOME=${ORACLE_HOME} \
    ORACLE_BASE=${ORACLE_BASE} \
    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 \
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
    DECLINE_SECURITY_UPDATES=true

Once the installation completes you will be prompted to run the root scripts. Once the root scripts are run as instructed, the installation is complete.

Using Response Files : 18c - Patching Installation Media (-applyRU and -applyOneOffs)

Oracle 18c also introduced the concept of patching the installation media prior to installation or upgrades. The -applyRU flag allows you to specify the location of a Release Update (RU), which is applied to the new ORACLE_HOME before the installation takes place. This saves you from having to install then patch the software as separate steps. If we had a release update "10000000" unzipped in the "/u01/software" directory, we might do something like this.

./runInstaller -ignorePrereq -waitforcompletion -silent \
    -applyRU /u01/software/10000000 \
    -responseFile ${ORACLE_HOME}/install/response/db_install.rsp \
    oracle.install.option=INSTALL_DB_SWONLY \
    ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
    UNIX_GROUP_NAME=oinstall \
    INVENTORY_LOCATION=${ORA_INVENTORY} \
    SELECTED_LANGUAGES=en,en_GB \
    ORACLE_HOME=${ORACLE_HOME} \
    ORACLE_BASE=${ORACLE_BASE} \
    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 \
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
    DECLINE_SECURITY_UPDATES=true

The -applyOneOffs flag is similar, but as the name suggests allows you to apply one-off patches. These can be combined with combined with release updates if needed. We can also specify multiple one-off patches as a comma-separated list. For the release update "10000000" with the one-off patches "10000001" and "10000002" we might do the following.

./runInstaller -ignorePrereq -waitforcompletion -silent \
    -applyRU /u01/software/10000000 \
    -applyOneOffs /u01/software/10000001,/u01/software/10000002 \
    -responseFile ${ORACLE_HOME}/install/response/db_install.rsp \
    oracle.install.option=INSTALL_DB_SWONLY \
    ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
    UNIX_GROUP_NAME=oinstall \
    INVENTORY_LOCATION=${ORA_INVENTORY} \
    SELECTED_LANGUAGES=en,en_GB \
    ORACLE_HOME=${ORACLE_HOME} \
    ORACLE_BASE=${ORACLE_BASE} \
    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 \
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
    DECLINE_SECURITY_UPDATES=true

This approach is also available for the Grid Infrastructure installation.

./gridSetup.sh ... -silent -applyRU ${SOFTWARE_DIR}/10000000 ...

For more information see:

Hope this helps. Regards Tim...

Back to the Top.