Skip to main content

Oracle 19c Silent Installation with RU patch


  • Introduction: Typically, Oracle Database software is installed using ./runInstaller with a graphical interface. In environments where a GUI is not available, silent installation provides an alternative. By using a response file that contains all necessary configuration details, the installation can run unattended without requiring any user interaction. In this article, we will do the silent installation of Oracle Binary, a database along with the Listener step by step. In addition we will also apply the RU 19.27 patch while installing the binary.

  • Prerequisites: Below are the minimum requirements for Linux environment.
  • Environment:
  • Hostname uat.oraeasy.com
    OS OL8.5
    Oracle Home /u01/app/oracle/product/19c/dbhome_1

  • Now let's proceed for the installation step by step:

1. First we need to install the prerequistes for Oracle 19c. We can do it with two methods Automatic & Manual.
Automatic setup: It will take care of all RPM installation, changes in configuration file & "Oracle" user creation along with groups.

[root@uat ~]# yum install -y oracle-database-preinstall-19c
Manual setup: In this you need to install all RPM packages, changes in configuration file & "Oracle" user creation along with groups.
Install below RPMs:

[root@uat ~]# yum install -y bc    
[root@uat ~]# yum install -y binutils
[root@uat ~]# yum install -y compat-libcap1
[root@uat ~]# yum install -y compat-libstdc++-33
[root@uat ~]# yum install -y dtrace-modules
[root@uat ~]# yum install -y dtrace-modules-headers
[root@uat ~]# yum install -y dtrace-modules-provider-headers
[root@uat ~]# yum install -y dtrace-utils
[root@uat ~]# yum install -y elfutils-libelf
[root@uat ~]# yum install -y elfutils-libelf-devel
[root@uat ~]# yum install -y fontconfig-devel
[root@uat ~]# yum install -y glibc
[root@uat ~]# yum install -y glibc-devel
[root@uat ~]# yum install -y ksh
[root@uat ~]# yum install -y libaio
[root@uat ~]# yum install -y libaio-devel
[root@uat ~]# yum install -y libXrender
[root@uat ~]# yum install -y libXrender-devel
[root@uat ~]# yum install -y libX11
[root@uat ~]# yum install -y libXau
[root@uat ~]# yum install -y libXi
[root@uat ~]# yum install -y libXtst
[root@uat ~]# yum install -y libgcc
[root@uat ~]# yum install -y librdmacm-devel
[root@uat ~]# yum install -y libstdc++
[root@uat ~]# yum install -y libstdc++-devel
[root@uat ~]# yum install -y libxcb
[root@uat ~]# yum install -y make
[root@uat ~]# yum install -y net-tools # Clusterware
[root@uat ~]# yum install -y nfs-utils # ACFS
[root@uat ~]# yum install -y python # ACFS
[root@uat ~]# yum install -y python-configshell # ACFS
[root@uat ~]# yum install -y python-rtslib # ACFS
[root@uat ~]# yum install -y python-six # ACFS
[root@uat ~]# yum install -y targetcli # ACFS
[root@uat ~]# yum install -y smartmontools
[root@uat ~]# yum install -y sysstat
Edit file "/etc/sysctl.conf" with below entry, and run "/sbin/sysctl -p" post changes:

[root@uat ~]# cat /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

[root@uat ~]# /sbin/sysctl -p
Edit file "/etc/security/limits.d/oracle-database-preinstall-19c.conf" with below entry:

[root@uat ~]# cat /etc/security/limits.d/oracle-database-preinstall-19c.conf
oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
oracle   hard   memlock    134217728
oracle   soft   memlock    134217728
oracle   soft   data    unlimited
oracle   hard   data    unlimited
Create "Oracle" user & its related groups:

[root@uat ~]# groupadd -g 54321 oinstall
[root@uat ~]# groupadd -g 54322 dba
[root@uat ~]# useradd -u 54321 -g oinstall -G dba
2. Now perform below steps. These are required whether you have done automatic or manual.
Change Oracle user password:

[root@uat ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall)
[root@uat ~]#
[root@uat ~]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@uat ~]#
Disable the firewall:

[root@uat ~]# systemctl stop firewalld
[root@uat ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Edit the "/etc/selinux/config" and set "SELINUX=permissive":

[root@uat ~]# cat /etc/selinux/config|grep permissive
#     permissive - SELinux prints warnings instead of enforcing.
SELINUX=permissive
[root@uat ~]#
Create ORACLE_HOME directory and provide required permission:

[root@uat ~]# mkdir -p /u01/app/oracle/product/19c/dbhome_1
[root@uat ~]# 
[root@uat ~]# chown -R oracle:oinstall /u01
[root@uat ~]# chmod -R 775 /u01
3. Now download the 19c binary, OPatch & RU Patch. Login with Oracle user & unzip them.

[oracle@uat ~]$ ls -lrth
total 2.9G
-rw-r--r--. 1 oracle oinstall 2.9G Aug 27 18:14 LINUX.X64_193000_db_home.zip
[oracle@uat ~]$
[oracle@uat ~]$ unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19c/dbhome_1

[oracle@uat ~]$ cd /tmp/software/
[oracle@uat software]$ ls -lrth
total 2.2G
-rw-r--r--. 1 oracle oinstall 2.2G Aug 27 18:16 19_27_p37642901_190000_Linux-x86-64.zip
-rw-r--r--. 1 oracle oinstall  70M Aug 27 18:16 p6880880_190000_Linux-x86-64_V46.zip
[oracle@uat software]$ unzip 19_27_p37642901_190000_Linux-x86-64.zip -d /u01/patch
4. Apply the Opatch.

[oracle@uat software]$ cd /u01/app/oracle/product/19c/dbhome_1/OPatch/
[oracle@uat OPatch]$
[oracle@uat OPatch]$ ./opatch version
OPatch Version: 12.2.0.1.17

OPatch succeeded.
[oracle@uat OPatch]$
[oracle@uat OPatch]$ cd ../
[oracle@uat dbhome_1]$ mv OPatch/ OPatch_bkp
[oracle@uat dbhome_1]$
[oracle@uat software]$ ls -lrth
total 2.2G
-rw-r--r--. 1 oracle oinstall 2.2G Aug 27 18:16 19_27_p37642901_190000_Linux-x86-64.zip
-rw-r--r--. 1 oracle oinstall  70M Aug 27 18:16 p6880880_190000_Linux-x86-64_V46.zip
[oracle@uat software]$
[oracle@uat software]$ unzip p6880880_190000_Linux-x86-64_V46.zip -d /u01/app/oracle/product/19c/dbhome_1/
[oracle@uat software]$ cd /u01/app/oracle/product/19c/dbhome_1/OPatch
[oracle@uat OPatch]$
[oracle@uat OPatch]$ ./opatch version
OPatch Version: 12.2.0.1.46

OPatch succeeded.
5. Now we need to edit the installation response file as per our environment. Take backup of existing file prior to modification.

[oracle@uat ~]$ cd /u01/app/oracle/product/19c/dbhome_1/install/response
[oracle@uat response]$
[oracle@uat response]$ ls -lrth
total 20K
-rw-r--r--. 1 oracle oinstall 20K Feb  6  2019 db_install.rsp
[oracle@uat response]$
[oracle@uat response]$ cp db_install.rsp db_install_bkp.rsp
Required parameters which need to be modified are shown below, here we are installing Software Only, Enterprise Edition & root script will be run manually:

oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=oinstall
oracle.install.db.OSOPER_GROUP=oinstall
oracle.install.db.OSBACKUPDBA_GROUP=oinstall
oracle.install.db.OSDGDBA_GROUP=oinstall
oracle.install.db.OSKMDBA_GROUP=oinstall
oracle.install.db.OSRACDBA_GROUP=oinstall
oracle.install.db.rootconfig.executeRootScript=false
templateName=General_Purpose.dbc
6. Now execute the runInstaller in silent mode.
Set CV_ASSUME_DISTID to OEL7 to avoid below error:
[WARNING] [INS-08101] Unexpected error while executing the action at state: 'supportedOSCheck'

[oracle@uat ~]$ cd /u01/app/oracle/product/19c/dbhome_1
[oracle@uat dbhome_1]$ ls runInstaller
runInstaller
[oracle@uat dbhome_1]$ export CV_ASSUME_DISTID=OEL7
[oracle@uat dbhome_1]$
[oracle@uat dbhome_1]$ ./runInstaller -applyRU /u01/patch/37642901 -silent -responseFile /u01/app/oracle/product/19c/dbhome_1/install/response/db_install.rsp 
Preparing the home to patch...
Applying the patch /u01/patch/37642901...
Successfully applied the patch.
The log can be found at: /tmp/InstallActions2025-08-29_09-25-53AM/installerPatchActions_2025-08-29_09-25-53AM.log
Launching Oracle Database Setup Wizard...

[WARNING] [INS-32047] The location (/u01/app/oraInventory) specified for the central inventory is not empty.
   ACTION: It is recommended to provide an empty location for the inventory.
The response file for this session can be found at:
 /u01/app/oracle/product/19c/dbhome_1/install/response/db_2025-08-29_09-25-53AM.rsp

You can find the log of this install session at:
 /tmp/InstallActions2025-08-29_09-25-53AM/installActions2025-08-29_09-25-53AM.log

As a root user, execute the following script(s):
        1. /u01/app/oraInventory/orainstRoot.sh
        2. /u01/app/oracle/product/19c/dbhome_1/root.sh

Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes:
[uat]
Execute /u01/app/oracle/product/19c/dbhome_1/root.sh on the following nodes:
[uat]


Successfully Setup Software.
Moved the install session logs to:
 /u01/app/oraInventory/logs/InstallActions2025-08-29_09-25-53AM
[oracle@uat dbhome_1]$
Please Note: The clause "-applyRU /u01/patch/37642901" in runInstaller is for applying the RU patch during installation. It is not necessary for silent installation.
7. Now execute the mentioned script from root user.

[root@uat ~]# /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@uat ~]# /u01/app/oracle/product/19c/dbhome_1/root.sh
Check /u01/app/oracle/product/19c/dbhome_1/install/root_uat.oraeasy.com_2025-08-29_09-41-32-611356488.log for the output of root script
[root@uat ~]#
[root@uat ~]# cat /u01/app/oracle/product/19c/dbhome_1/install/root_uat.oraeasy.com_2025-08-29_09-41-32-611356488.log
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/19c/dbhome_1
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
[root@uat ~]#
8. Now check Oracle version and patch.

[oracle@uat ~]$ . oraenv
ORACLE_SID = [oracle] ? orcl
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/19c/dbhome_1
The Oracle base has been set to /u01/app/oracle
[oracle@uat ~]$
[oracle@uat ~]$ sqlplus -v

SQL*Plus: Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

[oracle@uat ~]$ cd /u01/app/oracle/product/19c/dbhome_1/OPatch
[oracle@uat OPatch]$ ./opatch lspatches
37642901;Database Release Update : 19.27.0.0.250415 (37642901)
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)

OPatch succeeded.
[oracle@uat OPatch]$
Now we have succussfully installed the Oracle 19c along with RU 19.27 patch. So let's proceed to create a database.

9. For database creation we need to edit the DBCA respnose file. Take backup of existing file prior to modification.

[oracle@uat dbca]$ cd /u01/app/oracle/product/19c/dbhome_1/assistants/dbca
[oracle@uat dbca]$
[oracle@uat dbca]$ ls
dbca.rsp  dbca.sh  doc  jlib  templates
[oracle@uat dbca]$ cp dbca.rsp dbca_bkp.rsp
[oracle@uat dbca]$ ls
dbca_bkp.rsp  dbca.rsp  dbca.sh  doc  jlib  templates
Required parameters which need to be modified are shown below, here we are creating a Non-CDB database:

gdbName=orcl
sid=orcl
databaseConfigType=SI
templateName=General_Purpose.dbc
sysPassword=Sys123
systemPassword=Sys123
datafileDestination=/u01/app/oracle/oradata
recoveryAreaDestination=/u01/app/oracle/FRA
10. Create the required directories for datafile & FRA.

[oracle@uat dbca]$ mkdir -p /u01/app/oracle/oradata
[oracle@uat dbca]$
[oracle@uat dbca]$ mkdir -p /u01/app/oracle/FRA
11. Now execute the DBCA in silent mode.

[oracle@uat dbca]$ dbca -silent -createDatabase -responseFile /u01/app/oracle/product/19c/dbhome_1/assistants/dbca/dbca.rsp
[WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards.
   CAUSE:
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'SYSTEM' password entered does not conform to the Oracle recommended standards.
   CAUSE:
a. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
b.The password entered is a keyword that Oracle does not recommend to be used as password
   ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
Prepare for db operation
10% complete
Copying database files
40% complete
Creating and starting Oracle instance
42% complete
46% complete

50% complete
54% complete
60% complete
Completing Database Creation
66% complete

69% complete
70% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /u01/app/oracle/cfgtoollogs/dbca/orcl.
Database Information:
Global Database Name:orcl
System Identifier(SID):orcl
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details.
[oracle@uat dbca]$
12. Verify "/etc/oratab" file & login into database.

[oracle@uat dbca]$ cat /etc/oratab
#
# This file is used by ORACLE utilities.  It is created by root.sh
# and updated by either Database Configuration Assistant while creating
# a database or ASM Configuration Assistant while creating ASM instance.

# A colon, ':', is used as the field terminator.  A new line terminates
# the entry.  Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
#   $ORACLE_SID:$ORACLE_HOME::
#
# The first and second fields are the system identifier and home
# directory of the database respectively.  The third field indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
orcl:/u01/app/oracle/product/19c/dbhome_1:N
[oracle@uat dbca]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Aug 29 11:08:53 2025
Version 19.27.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.27.0.0.0

SQL>
SQL> select name,open_mode,database_role from v$database;

NAME      OPEN_MODE            DATABASE_ROLE
--------- -------------------- ----------------
ORCL      READ WRITE           PRIMARY

SQL>
Now we have succussfully created the database with name "orcl". Now let's proceed for Listener creation in silent mode.

13. For Listener creation we need to edit the NETCA respnose file. Take backup of existing file prior to modification.

[oracle@uat dbca]$ cd /u01/app/oracle/product/19c/dbhome_1/assistants/netca
[oracle@uat netca]$ ls
doc  images  jlib  netca_deinst.sbs  netca.rsp  netca.sbs
[oracle@uat netca]$
[oracle@uat netca]$ cp netca.rsp netca_bkp.rsp
[oracle@uat netca]$ ls
doc  images  jlib  netca_bkp.rsp  netca_deinst.sbs  netca.rsp  netca.sbs
[oracle@uat netca]$
Required parameters which need to be modified are shown below for Listener:

LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
NSN_SERVICE={"orcl"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
14. Now execute the DBCA in silent mode.

[oracle@uat netca]$ netca -silent -orahome /u01/app/oracle/product/19c/dbhome_1 -responsefile /u01/app/oracle/product/19c/dbhome_1/assistants/netca/netca.rsp

Parsing command line arguments:
    Parameter "silent" = true
    Parameter "orahome" = /u01/app/oracle/product/19c/dbhome_1
    Parameter "responsefile" = /u01/app/oracle/product/19c/dbhome_1/assistants/netca/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
    Running Listener Control:
      /u01/app/oracle/product/19c/dbhome_1/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
[oracle@uat netca]$
15. Now check the Listener status.

[oracle@uat netca]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 29-AUG-2025 12:27:22

Copyright (c) 1991, 2025, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=uat.oraeasy.com)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                29-AUG-2025 12:26:39
Uptime                    0 days 0 hr. 0 min. 43 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/uat/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=uat.oraeasy.com)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@uat netca]$


Thank you for reading!

I hope this content has been helpful to you. Your feedback and suggestions are always welcome — feel free to leave a comment or reach out with any queries.

Abhishek Shrivastava

📧 Email: oraeasyy@gmail.com
🌐 Website: www.oraeasy.com

Follow Us

Comments