Oracle 18c Database Product Installation


What follows is the most common way to install the Oracle 18c database product on LINUX for enterprise environments. Ideally you only want to install what will actually be used. This streamlines routine Oracle patches and makes your databases more secure. Removing unused components at a later date usually requires various manual actions and possibly downtime.



  • LINUX running 3.8.13-98.el7uek.x86_64 or later.
  • System minimums: 8gb RAM and 10gb Disk.
  • Oracle requires 1ms read and 5ms average write times or better.
  • Network infrastructure readied:
    • Firewall configured (ex: port 1521 opened).
    • DNS resolving system name.
  • Download files to your local disk.
  • Perform the OS Prerequisites.
  • If this will be a RAC you must first install the Grid Infrastructure (GI) ensure that ASM and all connectivity for cluster is OK.
  • Create the new Oracle home and extract the image file into the newly-created Oracle home.
mkdir -p /u01/app/oracle/product/
cp /u01/app/oracle/product/
cd /u01/app/oracle/product/

Single Database Installation

If GI\ASM not used init oraInventory Directory:

 su -
 mkdir -p /u01/app/oraInventory
 chown oracle:oinstall /u01/app/oraInventory
 chmod -R 775 /u01/app/oraInventory

Log into GUI as the oracle user, run the Installer:

 cd /u01/app/oracle/product/
 ./runInstaller &

Configuration Option

 🖸 Setup Software Only

Database Installation Option

 🖸 Single instance database installation

Database Edition

 🖸 Enterprise Edition

Installation Location

 Oracle base: /u01/app/oracle

Create Inventory

 Inventory Directory: /u01/app/oraInventory
 oraInventory Group Name: oinstall

Operating System Groups

 Set all to : dba
 If fine granted security required accept defaults.

Prerequisite Checks

 Adjust as required.


 Select [Install]
 Product installation runs...
 You will be prompted to run some scripts as root during the install.

 Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] : yes

 If successful you will see: 
 The registration of Oracle Database was successful.
 Select: [Close]

RAC Database Installation

  • Check the status of the cluster and ensure everything looks good before proceeding.
  • Install from node 1. The install process will install files on other node(s) you specify.

Run Installer as the oracle user.

 cd /u01/app/oracle/product/
 ./runInstaller &

Configuration Option

 🖸 Set Up Software Only

Database Installation Options

 🖸 Oracle Real Application database installation

Nodes Selection
If adding a new node just select the node you are adding otherwise select all nodes.

 ⮽ lnx01
 ⮽ lnx02

  a. Select 
  b. OS Username: oracle  
     OS Password: <Enter the oracle user password>
  c. Select 
     You should receive message that SSH connectivity was successful.
     Selecting  should also show this.
  When Next selected checks will run to ensure installation can be 
  perform on all nodes.

Database Edition

 🖸 Enterprise Edition

Installation Location

 Oracle base:         /u01/app/oracle
 Software location:   /u01/app/oracle/product/

 After pressing  remote system checks are performed.

Operating System Groups

 Set all to: dba

If your environment requires fine grained security use the defaults.

Prerequisites Check

 Change anything specified before continuing.


 After reviewing select: 

Install Product

 Product installation runs...

 At the "Copy Files to Remote Nodes" step, on the other node(s) 
 you will see "ractrans" services running correspondingly.

 You will be prompted to run script as root during the install on all nodes.
 Example: /u01/app/oracle/product/

Example Log monitoring: tail -f /u01/app/oraInventory/logs/installActions2017-11-13_12-38-12PM.log


 If successful you will see: 
    The installation of Oracle Database was successful.

Post Installation Actions

Create Initial oracle BASH User Profile (.bashrc)

The database name used here is oradb. Change as required for your environment.

umask 022

# Global Definitions
if [ -f /etc/bashrc ]; then
   . /etc/bashrc

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
   if [ $SHELL = "/bin/ksh" ]; then
      ulimit -p 16384
      ulimit -n 65536
      ulimit -u 16384 -n 65536

# Environment Vars
#After database created.#
#Std=DBName  # export ORACLE_SID=oradb
#RAC=InstName# export ORACLE_SID=oradb1

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/oracle/product/; export ORACLE_HOME

export PATH

export TEMP=/tmp
export TMPDIR=/tmp

# Aliases - Common
alias cl='crontab -l'
alias l9='ls -alt | head -9' 
alias l20='ls -alt | head -20'
alias l50='ls -alt | head -50'
alias tf='date;ls -l|wc -l'

# DBA Aliases
alias cdbin='cd $ORACLE_HOME/bin;pwd'
alias cdtrace='cd $ORACLE_BASE/diag/rdbms/$ORACLE_DB\/$ORACLE_SID\/trace;pwd'
alias cdnet='cd $ORACLE_HOME/network/admin;pwd'

alias alog='tail -f $ORACLE_BASE/diag/rdbms/$ORACLE_DB\/$ORACLE_SID\/trace/alert_$ORACLE_SID\.log'
#alias clog='tail -f /u01/app/grid/diag/crs/$(hostname -s)/crs/trace/alert.log'
#alias clog='tail -f $ORACLE_BASE/diag/crs/$HOSTNAME/crs/trace/alert.log'
alias llog='tail -f $ORACLE_BASE/diag/tnslsnr/$HOSTNAME/listener/alert/log.xml'

alias dbs='srvctl status database -d $ORACLE_DB'
alias sqp='rlwrap sqlplus / as sysdba'
alias sqpl='rlwrap sqlplus sys/go@oradb as sysdba'
alias sqldev='cd $ORACLE_HOME/sqldeveloper/sqldeveloper/bin;./sqldeveloper &'
alias rmn='rlwrap $ORACLE_HOME/bin/rman target / nocatalog'
alias src='source $HOME/.bashrc'

# Data Guard
alias dglog='tail -f $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace/drc$ORACLE_SID.log'
alias dgloge='gedit $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace/drc$ORACLE_SID.log &'

SQLPlus - Set Global Profile Settings

gedit $ORACLE_HOME/sqlplus/admin/glogin.sql to set common values.