18/6/25, 17:18 Install Oracle Database 12c Release 2 On Red Hat 8
Overview
According to Oracle, Oracle Database 12c is ‘the first database designed for the cloud’; the suffix ‘c’ stands for the
cloud. There are many new features in this release such as multitenant architecture, pluggable database, in-memory, etc.
The multitenant architecture is designed to simplify consolidation without requiring any changes to the applications. The
rapid provisioning and portability capabilities are enhanced by the pluggable databases. Another new feature is in-
memory makes it the first Oracle database to offer real-time analytics.
This article describes the installation of Oracle Database 12c release 2 (12.2.0.1.0) 64-bit on Red Hat 8 64-bit.
Lab Environment
Server Machine Work Station or Client Machine
OS ReleaseRed Hat Enterprise Linux release 8.4 (Ootpa)Red Hat Enterprise Linux release 8.4 (Ootpa)
Kernel 4.18.0-305.3.1.el8_4.x86_64 4.18.0-305.7.1.el8_4.x86_64
Release Oracle Database 12.1.0.2.0 Oracle SQL Developer Version 19.2.1.247
IP Address 192.168.201.116 10.100.20.197
Host Name Server Client
User Name Admin User
Table 01: Lab Environment
Step 1: Download Software
Go to the below office site.
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
Or,
https://edelivery.oracle.com/osdc/faces/Home.jspx
And Download the following version.
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 – 64bit
Step 2: Edit Server Host File
Add the hostname and IP address in the last line of “/etc/hosts” file in the following format.
Server_IP_address fully_qualified_host_name host_name
[Admin@Server ~]$ sudo sed -i '$ a 192.168.201.116 Server.localdomain Server' /etc/hosts
After that, the file will be like that:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.201.116 Server.localdomain Server
Here, Server is the hostname and the IP address of the server is 192.168.201.116.
Step 3: Basic Prerequisites for Oracle Installation
We divided this step into three sections (1) the Automatic Setup or (2) the Manual Setup and (3) the Additional
Setup. The Additional Setup is mandatory for both processes. In this tutorial, we follow the Manual Setup for this
reason we need to complete all tasks by ourselves, and then we go Additional Setup if you want to go with
the Automatic Setup checkout here.
https://www.infolipi.com/2021/09/install-oracle-database-12c-release-2_20.html 1/9
18/6/25, 17:18 Install Oracle Database 12c Release 2 On Red Hat 8
3.1. The Manual Setup:
In this process, we will complete most of your prerequisites system setup tasks manually and will complete the
following tasks:
Installs any additional RPM packages and dependencies that required
As needed, sets sysctl.conf settings and recommendations values for system startup parameters, and driver parameters
Sets hard and soft resource limits, and kernel parameter
Creates an oracle user and the oraInventory (oinstall) and OSDBA (dba) groups
For Linux x86_64 machines, Sets numa=off in the kernel.
3.1.1. Install Dependent Package
At first, manually install some basic prerequisite rpm that will suppress future conflicts:
[Admin@Server ~]$ sudo dnf update -y
[Admin@Server ~]$ sudo dnf install binutils -y
[Admin@Server ~]$ sudo dnf install compat-libcap1 -y
[Admin@Server ~]$ sudo dnf install compat-libstdc -y
[Admin@Server ~]$ sudo dnf install gcc -y
[Admin@Server ~]$ sudo dnf install gcc-c++ -y
[Admin@Server ~]$ sudo dnf install glibc -y
[Admin@Server ~]$ sudo dnf install glibc.i686 -y
[Admin@Server ~]$ sudo dnf install glibc-devel -y
[Admin@Server ~]$ sudo dnf install glibc-devel.i686 -y
[Admin@Server ~]$ sudo dnf install ksh -y
[Admin@Server ~]$ sudo dnf install libgcc -y
[Admin@Server ~]$ sudo dnf install libgcc.i686 -y
[Admin@Server ~]$ sudo dnf install libstdc++ -y
[Admin@Server ~]$ sudo dnf install libstdc++.i686 -y
[Admin@Server ~]$ sudo dnf install libstdc++-devel -y
[Admin@Server ~]$ sudo dnf install libstdc++-devel.i686 -y
[Admin@Server ~]$ sudo dnf install libaio -y
[Admin@Server ~]$ sudo dnf install libaio.i686 -y
[Admin@Server ~]$ sudo dnf install libaio-devel -y
[Admin@Server ~]$ sudo dnf install libaio-devel.i686 -y
[Admin@Server ~]$ sudo dnf install libXext -y
[Admin@Server ~]$ sudo dnf install libXext.i686 -y
[Admin@Server ~]$ sudo dnf install libXtst -y
[Admin@Server ~]$ sudo dnf install libXtst.i686 -y
[Admin@Server ~]$ sudo dnf install libX11 -y
[Admin@Server ~]$ sudo dnf install libX11.i686 -y
[Admin@Server ~]$ sudo dnf install libXau -y
[Admin@Server ~]$ sudo dnf install libXau.i686 -y
[Admin@Server ~]$ sudo dnf install libxcb -y
[Admin@Server ~]$ sudo dnf install libxcb.i686 -y
[Admin@Server ~]$ sudo dnf install libXi -y
[Admin@Server ~]$ sudo dnf install libXi.i686 -y
[Admin@Server ~]$ sudo dnf install make -y
[Admin@Server ~]$ sudo dnf install sysstat -y
[Admin@Server ~]$ sudo dnf install unixODBC -y
[Admin@Server ~]$ sudo dnf install unixODBC-devel -y
[Admin@Server ~]$ sudo dnf install libnsl -y
[Admin@Server ~]$ sudo dnf install smartmontools -y
[Admin@Server ~]$ sudo dnf install net-tools -y
May you not find the following RPM packages in the local repository.
https://www.infolipi.com/2021/09/install-oracle-database-12c-release-2_20.html 2/9
18/6/25, 17:18 Install Oracle Database 12c Release 2 On Red Hat 8
compat-libcap1
compat-libstdc++-33
So, download these RPMs from the rpm finder:
[Admin@Server ~]$ sudo wget https://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/compat-libcap1-
1.10-7.el7.x86_64.rpm
[Admin@Server ~]$ sudo wget https://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/compat-
libstdc++-33-3.2.3-72.el7.x86_64.rpm
And then install:
[Admin@Server ~]$ sudo dnf -y localinstall compat-libcap1-1.10-7.el7.x86_64.rpm compat-libstdc++-33-3.2.3-
72.el7.x86_64.rpm
3.1.2. Set Kernel Parameter Values
We can choose “/etc/sysctl.conf” file to set the following Kernel parameters.
[Admin@Server ~]$ sudo tee -a /etc/sysctl.conf >/dev/null <<'EOF'
# start for oracle
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
# end for oracle
EOF
Depending on the file, run the following command to load these kernel parameters to the system.
[Admin@Server ~]$ sudo /sbin/sysctl -p
3.1.3. Sets Resource Limits
The recommendation file is '/etc/security/limits.d/90-nproc.conf' instead of '/etc/security/limits.conf' for assign the
recommended resource limits values.
This configuration file may be distribution specific. Contact your system administrator for distribution specific
configuration file information.
memlock soft and hard limit: at least 90 percent of the current RAM when HugePages memory is enabled and at least
3145728 KB (3 GB) when HugePages memory is disabled
Create a file named '/etc/security/limits.d/90-nproc.conf'.
[Admin@Server ~]$ sudo touch /etc/security/limits.d/90-nproc.conf
https://www.infolipi.com/2021/09/install-oracle-database-12c-release-2_20.html 3/9
18/6/25, 17:18 Install Oracle Database 12c Release 2 On Red Hat 8
And then set the security limits values to that file.
[Admin@Server ~]$ sudo tee -a /etc/security/limits.d/90-nproc.conf >/dev/null <<'EOF'
# start for oracle
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
# end for oracle
EOF
Note: The above part is the default or may you can say the optimum recommended values by Oracle. You may need to
change the values according to your requirements. For 512 GB RAM I would like to configure like that;
[Admin@Server ~]$ sudo tee -a /etc/security/limits.d/90-nproc.conf >/dev/null <<'EOF'
# start for oracle
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 375809638400
oracle soft memlock 375809638400
# end for oracle
EOF
3.1.4. Create Oracle User and Groups
The following example shows how to create the user oracle with the user ID 54321; with the primary group oinstall; and with secondary groups dba, asmdba, backupdba, dgdba, kmdba,
and racdba:
[Admin@Server ~]$ groupadd -g 54321 oinstall
[Admin@Server ~]$ groupadd -g 54322 dba
[Admin@Server ~]$ groupadd -g 54323 oper
[Admin@Server ~]$ groupadd -g 54324 backupdba
[Admin@Server ~]$ groupadd -g 54325 dgdba
[Admin@Server ~]$ groupadd -g 54326 kmdba
[Admin@Server ~]$ groupadd -g 54327 asmdba
[Admin@Server ~]$ groupadd -g 54328 asmoper
[Admin@Server ~]$ groupadd -g 54329 asmadmin
[Admin@Server ~]$ groupadd -g 54330 racdba
[Admin@Server ~]$ useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba oracle
3.3. The Additional Setup
In this section, we can do some configurations such as the password set for oracle user, change the SELinux tag to
permissive, stop the firewall, create installation directories etc. These steps are described in the following section:
3.3.1. Set the password for oracle user:
https://www.infolipi.com/2021/09/install-oracle-database-12c-release-2_20.html 4/9
18/6/25, 17:18 Install Oracle Database 12c Release 2 On Red Hat 8
[Admin@Server ~]$ sudo passwd oracle
Provide your super-secret password for oracle user.
3.3.2. Set SELinux flag:
Change the SELinux flag to permissive in the”/etc/selinux/config” file.
[Admin@Server ~]$ sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
3.3.3. Stop and disable the firewall service:
[Admin@Server ~]$ sudo systemctl stop firewalld
[Admin@Server ~]$ sudo systemctl disable firewalld
To configure the firewall please follow the link.
3.3.4. Create database installation directory:
In this tutorial, we will use different directories for each type of database file.
Note:Do not put the oraInventory directory under the Oracle base directory for a new installation, because that can result
in user permission errors for other installations.
[Admin@Server ~]$ sudo mkdir -p /u01/app/oracle/product/12c/db_1
[Admin@Server ~]$ sudo mkdir -p /u02/oradata
[Admin@Server ~]$ sudo mkdir -p /u03/recovery_area
Change the permission of these directories to oracle user.
[Admin@Server ~]$ sudo chown -R oracle:oinstall /u01 /u02 /u03
[Admin@Server ~]$ sudo chmod -R 775 /u01 /u02 /u03
Step 4. Configure Environment Variable
This step creates a script file for the environment variable and then assigns it (the script file) to the
“/home/oracle/.bash_profile” file. To complete this task, Log in to the oracle user.
[Admin@Server ~]$ su - oracle
Create a directory to keep the scripts:
[oracle@Server ~]$ mkdir -p /u01/app/oracle/scripts
Create a script file named “Oracle12cEnvVar.sh” in that directory. And put the following content to that file:
[oracle@Server ~]$ cat > /u01/app/oracle/scripts/Oracle12cEnvVar.sh <<EOF
#Start Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=Server
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/12c/db_1
export ORACLE_OWNER=oracle
export ORACLE_UNQNAME=oracledbdc
export DB_UNIQUE_NAME=oracledbdc
export ORACLE_DBNAME=oracledb
https://www.infolipi.com/2021/09/install-oracle-database-12c-release-2_20.html 5/9
18/6/25, 17:18 Install Oracle Database 12c Release 2 On Red Hat 8
export ORACLE_SID=oracledb
export PATH=\$PATH:\$HOME/bin:\$ORACLE_HOME:\$ORACLE_HOME/bin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export LIBPATH=\$ORACLE_HOME/lib:\$LIBPATH
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
#End Oracle Settings
EOF
Now add this file to the end of the”/home/oracle/.bash_profile” file.
[oracle@Server ~]$ echo ". /u01/app/oracle/scripts/Oracle12cEnvVar.sh" >> /home/oracle/.bash_profile
To start and stop the database using Linux Service with the help of dbstart and dbshut utility respectively. Please check
the link.
Step 5: Exporting Graphical User Interface
For exporting GUI display, install these following packages in the server from root or sudo user. Log in to Admin user
and run the following command:
[oracle@Server ~]$ su - Admin
[Admin@Server ~]$ sudo dnf install -y xdpyinfo xorg-x11-xauth
And change the value of “ForwardX11” from “no” to “yes” in the following file:
[Admin@Server ~]$ sudo sed -i -E 's/#\s+ForwardX11 no/ForwardX11 yes/' /etc/ssh/ssh_config
Step 6: Upload Oracle Database software to Server
In this case, we already download the oracle software on our client machine‘s “/tmp” directory. So, at first, we need to
log in to the client machine and then upload the zip file of Oracle software to the “/tmp” directory of the server.
[User@Client ~]$ sudo scp -v linuxx64_12201_database.zip
[email protected]:~/Downloads
Log in to the server with the oracle user and unzip the software file in your desire directory.
[oracle@Server ~]$ unzip linuxx64_12201_database.zip
Now reboot (from root or sudo user in this case Admin) the server:
[oracle@Server ~]$ su - Admin
[Admin@Server ~]$ sudo reboot
After rebooting log into the server using oracle user with graphical user interface feature.
Step 7: Suppress the OS Version Error
We may receive the following error when installing Oracle database 12c Installer on Red Hat 8 (64-bit) platform:
https://www.infolipi.com/2021/09/install-oracle-database-12c-release-2_20.html 6/9
18/6/25, 17:18 Install Oracle Database 12c Release 2 On Red Hat 8
[INS-13001] Oracle Database is not supported on this operating system. The installer will not perform
prerequisite checks on the system.
To suppress this error change the distribution id to OLE8 in “cvu_config” file as:
[oracle@Server ~]$ cp -v /home/oracle/Downloads/database/stage/cvu/cv/admin/cvu_config
/home/oracle/Downloads/database/stage/cvu/cv/admin/cvu_config.bak
[oracle@Server ~]$ sed -i 's/#CV_ASSUME_DISTID=OEL5/CV_ASSUME_DISTID=OEL8/'
/home/oracle/Downloads/database/stage/cvu/cv/admin/cvu_config
Step 8: Installation Oracle Database On Red Hat
Go to the ORACLE_HOME directory and start the Oracle Universal Install (OUI) interactively by issuing the following
command. If you want to run this installer silently then check this link.
[oracle@Server database]$ bash /home/oracle/Downloads/database/runInstaller
In this installation process, we will create and configure an Oracle Database Enterprise Edition Server. For RAC and
Upgrade installation choose ‘Set UP Software Only’. The Server Class option for a production data center allows for
more advanced configuration options such as Oracle RAC, ASM, RMAN, integration with OEM, etc.
Choose the following option for this installation process:
Configure Option: Create and configure a single instance database
System Class: Server class
Database Edition: Enterprise Edition
Installation Location:
Oracle base: /u01/app/oracle
Software location: /u01/app/oracle/product/12c/dbhome_1
Create Inventory: /u01/app/oraInventory
OraInventory Group Name: oinstall
Configuration Type: General Purpose / Transaction Processing
Database Identificaton:
Global database name: oracledbdc
Oracle system identifier (SID): oracledb
Pluggable database name: hrpdb
Configuration Options:
Memory: Uncheck ‘Enable Automatic Memory Management’
Character sets: use Unicode (AL32UTF8)
Simple schemas: Uncheck ‘Install sample schemas in the database’
Database Storage:
File system: /u02/oradata
Management Options: Uncheck ‘Register with Enterprise Manager (EM) Cloud Control’
Recovery Optionsa: Check ‘Enable Recovery’
File system: /u03/recovery_area
Schema Passwords: Check ‘use the same password for all accounts’ and set same password for SYS, SYSTEM,
PDBADMIN USER
Operating System Groups:
Database Administrator (OSDBA) group: dba
Database Operator (OSOPER) group (Optional): oper
Database Backup and Recovery (OSBACKUPDBA) group: backupdba
Data Guard administrative (OSDGDBA) group: dgdba
Encryption Key Management administrative (OSKMDBA) group: kmdba
Real Application Cluster administrative (OSRACDBA) group: racdba
Prerequisite Checks: will run automatically
Summary: Save the summaruy description
https://www.infolipi.com/2021/09/install-oracle-database-12c-release-2_20.html 7/9
18/6/25, 17:18 Install Oracle Database 12c Release 2 On Red Hat 8
Install Product: This section take sometimes. When prompted these following scripts run these from root or sudo user as
follows
Finish: If we see the installation process is complete then we see ‘Oracle Enterprise Manager Database Express URL:
https://Server.localdomain:5500/em‘ this type of popup message and then close the installation window
If the installation is failed due to Run Level error please check this link.
[Admin@Server ~]$ sudo bash /u01/app/oraInventory/orainstRoot.sh
[Admin@Server ~]$ sudo bash /u01/app/oracle/product/12c/dbhome_1/root.sh
Close the installation window when we see the above screen with click the ok button. I will manage the user password
later.
Step 9: Post Installation
Set the restart flag to ‘Y‘ in the “/etc/oratab” file from root or sudo user:
[oracle@Server ~]$ su - Admin
[Admin@Server ~]$ sudo sed -i -e
's/oracledb:\/u01\/app\/oracle\/product\/12c\/dbhome_1:N/oracledb:\/u01\/app\/oracle\/product\/12c\/dbhome_1:Y/'
/etc/oratab
Creating a Backup of the root.sh Script: Oracle recommends that you back up the root.sh script after you complete an
installation. If you install other products in the same Oracle home directory subsequent to this installation, then Oracle
Universal Installer updates the contents of the existing root.sh script during the installation. If you require information
contained in the original root.sh script, then you can recover it from the backed up root.sh file.
Local Connectivity
Log in to the server using oracle user and connect:
[Admin@Server ~]$ su - oracle
[oracle@Server ~]$ sqlplus / as sysdba
Remote Connectivity
Now we connect the database from our remote client machine. To do this we use Oracle SQL Developer as a client
application. If you are new to Oracle SQL Developer please visit here.
Open Oracle SQL Developer and provide the following connection parameter:
Name: Test_DB_Connection_from_Client_Machine
Username: sys
Role: SYSDBA
Password: <Password of SYS user>
Hostname: 192.168.201.116
Port: 1521
Service name: oracledbdc
Connectivity from Oracle SQL Developer:
Click on the Test button it will show the Status is Success then Save and Connect.
Conclusion
https://www.infolipi.com/2021/09/install-oracle-database-12c-release-2_20.html 8/9
18/6/25, 17:18 Install Oracle Database 12c Release 2 On Red Hat 8
This will help you to install Oracle Database 19c on Red Hat Linux 8 step by step. If you have any queries please
comment to us.
References
This tutorial follows the official docs as reference Database Installation Guide for Linux.
https://www.infolipi.com/2021/09/install-oracle-database-12c-release-2_20.html 9/9