0% found this document useful (0 votes)
954 views

Install Oracle Database 19c On Oracle Linux 8

The document provides instructions for installing Oracle Database 19c on Oracle Linux 8. It describes setting up the hosts and hostname files, installing prerequisite packages either automatically or manually, creating new operating system groups and users, setting permissions and directories, and running the Oracle Universal Installer to complete the installation. It also covers post-installation tasks like patching the installation.

Uploaded by

Paul Connacher
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
954 views

Install Oracle Database 19c On Oracle Linux 8

The document provides instructions for installing Oracle Database 19c on Oracle Linux 8. It describes setting up the hosts and hostname files, installing prerequisite packages either automatically or manually, creating new operating system groups and users, setting permissions and directories, and running the Oracle Universal Installer to complete the installation. It also covers post-installation tasks like patching the installation.

Uploaded by

Paul Connacher
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Install Oracle Database 19c on Oracle Linux 8

Hosts Files Configuration


The "/etc/hosts" file must contain a fully qualified name for the server.
<IP-address> <fully-qualified-machine-name> <machine-name>

For example:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.30.5 ol8-19.localdomain ol8-19

Set the correct hostname in the "/etc/hostname" file.


ol8-19.localdomain

Oracle Installation Prerequisites

Automatic Setup

Perform either the Automatic Setup or the Manual Setup to complete the basic prerequisites. The Additional
Setup is required for all installations.

If you plan to use the "oracle-database-preinstall-19c" package to perform all your prerequisite setup, issue
the following command.
dnf install -y oracle-database-preinstall-19c

It is probably worth doing a full update as well, but this is not strictly speaking necessary.
yum update -y

Manual Setup
If you have not used the "oracle-database-preinstall-19c" package to perform all prerequisites, you will need
to manually perform the following setup tasks.

Add the following lines to the "/etc/sysctl.conf" file, or in a file called "/etc/sysctl.d/98-oracle.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

Run one of the following commands to change the current kernel parameters, depending on which file you
edited.
/sbin/sysctl -p

Or
/sbin/sysctl -p /etc/sysctl.d/98-oracle.conf

Add the following lines to a file called "/etc/security/limits.d/oracle-database-preinstall-19c.conf" file.


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

The following packages are listed as required. Don't worry if some don't install. It won't prevent the
installation.
sudo dnf install -y bc binutils compat-libcap1 compat-libstdc++-33 dtrace-modules
dtrace-modules-headers dtrace-modules-provider-headers dtrace-utils elfutils-libelf
elfutils-libelf-devel libXrender libXrender-devel libX11 libXau libXi libXtst libgcc
librdmacm-devel libstdc++ libstdc++-devel libxcb make net-tools nfs-utils python
python-configshell python-rtslib python-six targetcli smartmontools sysstat unixODBC libnsl
libnsl.i686 libnsl2 libnsl2.i686

Create the new groups and users.


sudo groupadd -g 54321 oinstall
sudo groupadd -g 54322 dba
sudo groupadd -g 54323 oper
sudo groupadd -g 54324 backupdba
sudo groupadd -g 54325 dgdba
sudo groupadd -g 54326 kmdba
sudo groupadd -g 54327 asmdba
sudo groupadd -g 54328 asmoper
sudo groupadd -g 54329 asmadmin
sudo groupadd -g 54330 racdba

sudo useradd -u 54321 -g oinstall -G


dba,oper,backupdba,dgdba,kmdba,asmdba,asmoper,asmadmin,racdba oracle

Additional Setup
Set the password for the "oracle" user.
sudo passwd oracle

Set secure Linux to permissive by editing the "/etc/selinux/config" file, making sure the SELINUX flag is set
as follows.
SELINUX=permissive

Once the change is complete, restart the server or run the following command.
sudo setenforce Permissive

If you have the Linux firewall enabled, you will need to disable or configure it, as shown here <TBA>. To
disable it, do the following.
sudo systemctl stop firewalld
sudo systemctl disable firewalld

If you are not using Oracle Linux and UEK, you will need to manually.

Create the directories in which the Oracle software will be installed.


sudo mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
sudo mkdir -p /u02/oradata
sudo chown -R oracle:oinstall /u01 /u02
sudo chmod -R 775 /u01 /u02

Unless you are working from the console, or using SSH tunnelling, login as root and issue the following
command.

Create a "scripts" directory.


sudo mkdir /home/oracle/scripts

Edit the ~/.bash_profile for the oracle user and following to bottom of it:
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_SID=oradb; export ORACLE_SID
ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1; export ORACLE_HOME
NLS_DATE_FORMAT="DD-MON-YYYY HH24:MI:SS"; export NLS_DATE_FORMAT
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN

PATH=$PATH:$HOME/.local/bin:$HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/local/bin
PATH=.:${PATH}:$ORACLE_HOME/bin
export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH

export TEMP=/tmp
export TMPDIR=/tmp

umask 022

Create a "start_all.sh" and "stop_all.sh" script that can be called from a startup/shutdown service. Make sure
the ownership and permissions are correct.
sudo vi /home/oracle/scripts/start_all.sh <<EOF
#!/bin/bash
. /home/oracle/scripts/setEnv.sh

export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

dbstart \$ORACLE_HOME

sudo vi /home/oracle/scripts/stop_all.sh <<EOF


#!/bin/bash
. /home/oracle/scripts/setEnv.sh

export ORAENV_ASK=NO
. oraenv
export ORAENV_ASK=YES

dbshut \$ORACLE_HOME

sudo chown -R oracle:oinstall /home/oracle/scripts


sudo chmod u+x /home/oracle/scripts/*.sh

Once the installation is complete and you've edited the "/etc/oratab", you should be able to start/stop the
database with the following scripts run from the "oracle" user.
~/scripts/start_all.sh
~/scripts/stop_all.sh

You can see how to create a Linux service to automatically start/stop the database here <TBA>

Installation
Log into the oracle user. If you are using X emulation then set the DISPLAY environmental variable.
DISPLAY=<machine-name>:0.0; export DISPLAY

Switch to the ORACLE_HOME directory, unzip the software directly into this path and start the Oracle Universal
Installer (OUI) by issuing one of the following commands in the ORACLE_HOME directory. The interactive mode
will display GUI installer screens to allow user input, while the silent mode will install the software without
displaying any screens, as all required options are already specified on the command line.
# Unzip software.
cd $ORACLE_HOME
unzip -oq /path/to/software/LINUX.X64_193000_db_home.zip

# Fake Oracle Linux 7.


export CV_ASSUME_DISTID=OEL7.6

# Interactive mode.
./runInstaller

# 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

Run the root scripts when prompted.


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

You are now ready to create a database, but it's better to patch the installation first if you have access to
Oracle Support.

Patch Installation
The installation of 19.3 will work without applying the patches. If you don't have access to the patches and
are just doing the installation for a test system, you can proceed without this step.

For the installation to be supported you need to be on patch level 19.7 (April 2020) or later. To get the
patches you need to have a valid Oracle Support CSI so you can download them from Oracle Support. This is
an example of applying the 19.7 patch to a clean standalone installation without ASM and before a database
is created.

export SOFTWARE_DIR=/u01/software
export PATH=${ORACLE_HOME}/OPatch:${PATH}
export OPATCH_FILE="p6880880_190000_Linux-x86-64.zip"
export PATCH_FILE="p30783543_190000_Linux-x86-64.zip"
export PATCH_TOP=${SOFTWARE_DIR}/30783543
export PATCH_PATH1=${PATCH_TOP}/30869156
export PATCH_PATH2=${PATCH_TOP}/30805684

# Prepare opatch.
cd ${ORACLE_HOME}
unzip -oq ${SOFTWARE_DIR}/${OPATCH_FILE}

# Unzip software.
cd ${SOFTWARE_DIR}
unzip -oq ${PATCH_FILE}

cd ${PATCH_PATH1}
opatch prereq CheckConflictAgainstOHWithDetail -ph ./
opatch apply -silent

cd ${PATCH_PATH2}
opatch prereq CheckConflictAgainstOHWithDetail -ph ./
opatch apply -silent
Database Creation
You create a database using the Database Configuration Assistant (DBCA). The interactive mode will
display GUI screens to allow user input, while the silent mode will create the database without displaying
any screens, as all required options are already specified on the command line.
# Start the listener.
lsnrctl start

# Interactive mode.
dbca

# Silent mode.
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

You can read more about silent database creation <TBA>.

Post Installation
Edit the "/etc/oratab" file setting the restart flag for each instance to 'Y'.
cdb1:/u01/app/oracle/product/19.0.0/db_1:Y

Enable Oracle Managed Files (OMF) and make sure the PDB starts when the instance starts.
sqlplus / as sysdba <<EOF
alter system set db_create_file_dest='${DATA_DIR}';
alter pluggable database ${PDB_NAME} save state;
exit;

You might also like