DEV Community

Dmitry Romanoff
Dmitry Romanoff

Posted on

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

Step 1:

Create VM using Virtual Box and install on it OS Oracle Enterprise Linux 8 (64-bit)

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

The VM will have 4G RAM, 4 CPUs, 50 GB Storage and network configured.

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

Step 2:

Download Oracle Linux 8 iso image from Oracle:

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

Step 3:

Attach downloaded iso image of the OS Oracle Linux 8 to the Storage Devices of the VM:

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

Step 4:

Start the VM with OS Oracle Linux 8 attached:

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

Step 5:

Install the OS Oracle Linux 8:

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

Downloading and installing the packages will take some time.

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

After installation reboot the system.

Accept the license.

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

Step 6:

Configure Network as following:

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

Check connectivity to the created Oracle Enterprise Linux 8 machine using MobaXterm (or any other terminal application):

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

Step 7:

Set hostname of this machine:

oracle.labs.local 
Enter fullscreen mode Exit fullscreen mode

Set hostname of this machine:

hostnamectl set-hostname oracle.labs.local 
Enter fullscreen mode Exit fullscreen mode

Reboot the machine:

init 6 
Enter fullscreen mode Exit fullscreen mode

Ensure after reboot hostname set as expected.

[root@localhost ~]# hostnamectl Static hostname: oracle.labs.local Icon name: computer-vm Chassis: vm Machine ID: 3ec96794e1e54278b9dc7a2bf3d21777 Boot ID: 608f7fdb165c464fb47e2c409bb05c68 Virtualization: oracle Operating System: Oracle Linux Server 8.3 CPE OS Name: cpe:/o:oracle:linux:8:3:server Kernel: Linux 5.4.17-2011.7.4.el8uek.x86_64 Architecture: x86-64 [root@localhost ~]# [root@oracle ~]# hostname oracle.labs.local [root@oracle ~]# [root@oracle ~]# cat /etc/hostname oracle.labs.local [root@oracle ~]# 
Enter fullscreen mode Exit fullscreen mode

Step 8:

Edit /etc/hosts file as following:

[root@oracle ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.0.55 oracle.labs.local oracle 192.168.0.254 infra.labs.local [root@oracle ~]# 
Enter fullscreen mode Exit fullscreen mode

oracle.labs.local is the hostname of the Oracle Server we’re installing.

infra.labs.local is the hostname of another server where Kerberos Server is installed. This entry is necessary for further implementation of Kerberos based authentication for this Oracle DB Server.

Step 9:

Use oracle-database-preinstall-19c package to perform all prerequisite setup for Oracle DB Server 19c.

dnf install -y oracle-database-preinstall-19c 
Enter fullscreen mode Exit fullscreen mode

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

Step 10:

It’s best practice to perform a full update as well.

yum update –y 
Enter fullscreen mode Exit fullscreen mode

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

The update will take some time.

Step 11:

Setup password for oracle user.

[root@oracle ~]# passwd oracle Changing password for user oracle. New password: Retype new password: passwd: all authentication tokens updated successfully. [root@oracle ~]# 
Enter fullscreen mode Exit fullscreen mode

Step 12:

In the file /etc/selinux/config set SELINUX=disabled

[root@oracle ~]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted 
Enter fullscreen mode Exit fullscreen mode

Reboot the system

Step 13:

Disable Linux firewall:

[root@oracle ~]# systemctl stop firewalld [root@oracle ~]# systemctl disable firewalld Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@oracle ~]# 
Enter fullscreen mode Exit fullscreen mode

Step 14:

Create important directories in which Oracle DB software will be installed.

[root@oracle ~]# mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 [root@oracle ~]# mkdir -p /u02/oradata [root@oracle ~]# chown -R oracle:oinstall /u01 /u02 [root@oracle ~]# chmod -R 775 /u01 /u02 [root@oracle ~]# 
Enter fullscreen mode Exit fullscreen mode

Step 15:

Create a “scripts” directory

[root@oracle ~]# mkdir /home/oracle/scripts [root@oracle ~]# 
Enter fullscreen mode Exit fullscreen mode

Step 16:

Create setEnv.sh script.

[root@oracle ~]# cat /home/oracle/scripts/setEnv.sh # Oracle Settings export TMP=/tmp export TMPDIR=$TMP export ORACLE_HOSTNAME=oracle.labs.local export ORACLE_UNQNAME=cdb1 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1 export ORA_INVENTORY=/u01/app/oraInventory export ORACLE_SID=cdb1 export PDB_NAME=pdb1 export DATA_DIR=/u02/oradata export PATH=/usr/sbin:/usr/local/bin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib [root@oracle ~]# 
Enter fullscreen mode Exit fullscreen mode

Step 17:

Add a reference to the setEnv.sh file at the end of the /home/oracle/.bash_profile

[root@oracle ~]# echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile [root@oracle ~]# 
Enter fullscreen mode Exit fullscreen mode

Step 18:

Create start_all.sh and stop_all.sh scripts that can be called from a startup/shutdown service. Make sure the ownership and permissions are correct.

[root@oracle ~]# cat /home/oracle/scripts/start_all.sh #!/bin/bash . /home/oracle/scripts/setEnv.sh export ORAENV_ASK=NO . oraenv export ORAENV_ASK=YES dbstart $ORACLE_HOME [root@oracle ~] [root@oracle ~]# cat /home/oracle/scripts/stop_all.sh #!/bin/bash . /home/oracle/scripts/setEnv.sh export ORAENV_ASK=NO . oraenv export ORAENV_ASK=YES dbshut $ORACLE_HOME [root@oracle ~]# [root@oracle ~]# chown -R oracle:oinstall /home/oracle/scripts [root@oracle ~]# chmod u+x /home/oracle/scripts/*.sh [root@oracle ~]# 
Enter fullscreen mode Exit fullscreen mode

These scripts will allow us to create Linux service to automatically start/stop the database.

Now we can install Oracle DB Software.

Step 19:

Login to the created Linux machine as an oracle user and create directory to place Oracle DB installation files.

[root@oracle ~]# su - oracle [oracle@oracle ~]$ mkdir ora_software [oracle@oracle ~]$ pwd /home/oracle [oracle@oracle ~]$ 
Enter fullscreen mode Exit fullscreen mode

Step 20:

Download Oracle DB Software from Oracle Support site and place them on the Linux server we have just installed.

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

Step 21:

Unzip software.

[oracle@oracle ora_software]$ cd $ORACLE_HOME [oracle@oracle dbhome_1]$ unzip -oq /home/oracle/ora_software/LINUX.X64_193000_db_home.zip The unzip activity will take some time. 
Enter fullscreen mode Exit fullscreen mode

Step 22:

The following export command required to fake Oracle Linux 7.

[oracle@oracle dbhome_1]$ export CV_ASSUME_DISTID=OEL7.6 [oracle@oracle dbhome_1]$ 
Enter fullscreen mode Exit fullscreen mode

Step 23:

Installation of Oracle DB Software can run in interactive or in silent mode.

To run interactive mode:

./runInstaller 
Enter fullscreen mode Exit fullscreen mode

In this guide we will run installer in silent mode.

./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 
Enter fullscreen mode Exit fullscreen mode

The installation will take some time.

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

Step 24:

As suggested by installer, login as a root user and run the following:

[oracle@oracle dbhome_1]$ su - Password: [root@oracle ~]# /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@oracle ~]# /u01/app/oracle/product/19.0.0/dbhome_1/root.sh Check /u01/app/oracle/product/19.0.0/dbhome_1/install/root_oracle.labs.local_2021-03-27_02-34-02-102394345.log for the output of root script [root@oracle ~]# 
Enter fullscreen mode Exit fullscreen mode

Now Oracle Software is installed.

And we’re ready to create an Oracle Database.

Step 25:

Before creating DB we should start Oracle listener:

[oracle@oracle ~]$ lsnrctl start LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 27-MAR-2021 02:37:46 Copyright (c) 1991, 2019, Oracle. All rights reserved. Starting /u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 19.0.0.0.0 - Production Log messages written to /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle.labs.local)(PORT=1521))) Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 27-MAR-2021 02:37:46 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Log File /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle.labs.local)(PORT=1521))) The listener supports no services The command completed successfully [oracle@oracle ~]$ 
Enter fullscreen mode Exit fullscreen mode

Step 26:

Database can be created using the Database Configuration Assistance (DBCA). It can be done in interactive mode or in a silent mode.

To create database in interactive mode it can be run command:

dbca 
Enter fullscreen mode Exit fullscreen mode

In this guide we will use DB creation in silent mode approach.

dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname ${ORACLE_SID} -sid ${ORACLE_SID} -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -sysPassword SysPassword1 \ -systemPassword SysPassword1 \ -createAsContainerDatabase true \ -numberOfPDBs 1 \ -pdbName ${PDB_NAME} \ -pdbAdminPassword PdbPassword1 \ -databaseType MULTIPURPOSE \ -memoryMgmtType auto_sga \ -totalMemory 2000 \ -storageType FS \ -datafileDestination "${DATA_DIR}" \ -redoLogFileSize 50 \ -emConfiguration NONE \ -ignorePreReqs 
Enter fullscreen mode Exit fullscreen mode

This activity will take some time.

How to setup Oracle 19c DB on OS Oracle Enterprise Linux 8?

The progress will look like:

Prepare for db operation 8% complete Copying database files 31% complete Creating and starting Oracle instance 32% complete 36% complete 40% complete 43% complete 46% complete Completing Database Creation Completing Database Creation 51% complete 53% complete 54% complete Creating Pluggable Databases 58% complete 77% complete Executing Post Configuration Actions 100% complete Database creation complete. For details check the logfiles at: /u01/app/oracle/cfgtoollogs/dbca/cdb1. Database Information: Global Database Name:cdb1 System Identifier(SID):cdb1 Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb1/cdb1.log" for further details. [oracle@oracle ~]$ 
Enter fullscreen mode Exit fullscreen mode

Step 27:

Edit /etc/oratab file as following: [oracle@oracle ~]$ cat /etc/oratab cdb1:/u01/app/oracle/product/19.0.0/db_1:Y [oracle@oracle ~]$ 
Enter fullscreen mode Exit fullscreen mode

Step 28:

Enable Oracle Managed Files (OMF) and make sure the PDB starts when the instance starts.

[oracle@oracle ~]$ sqlplus / as sysdba <<EOF alter system set db_create_file_dest='${DATA_DIR}'; alter pluggable database ${PDB_NAME} save state; exit; EOF 
Enter fullscreen mode Exit fullscreen mode

Step 29:

Connect to the Oracle DB:

[oracle@oracle ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Sat Mar 27 03:01:33 2021 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)