Installing E-Business Suite R12.2.11 + RDBMS 19c on OEL 8.5: Part 1 – Operating System Prep

This is the first post in a multi-part series. The ultimate goal is to have a single node installation running Oracle E-Business Suite R12.2.11 & RDBMS 19c on Oracle Enterprise LInux 8.5.

For the purpose of this installation, I’m using a VirtualBox VM. However, the steps would be pretty much the same regardless of the physical (or virtual) hardware.

It is important to note, if your goal is simply to have an easy Oracle E-Business Suite Vision VM, then Oracle does have pre-built VM images (templates) that you can download and import into VirtualBox.

However, for our purposes, we’re walking through the steps to build the system from the ground up, similar to a “real” installation.

Create the Virtual Machine The “Hardware”

For a Minimal Installation, the pre-built Oracle VISION VM Templates have the following minimum hardware requirements:

  • 1 CPU Core
  • 16 GB RAM
  • 400 GB Disk

For this installation, I’m using a fairly beefy physical machine, so I’m able to size the Virtual Machine comfortably. I’m also sizing the system in a manner that would be similar to what you might actually use.

  • 8 CPU Cores
  • 24 GB RAM
  • 64GB Main Disk (Operating System)
  • 512 GB for the Oracle Software
  • 512 GB for the database
  • 64 GB for archive logs

After installing VirtualBox, create a VirtualBox VM. Assign the VM 8 CPU cores. Optionally Enable “Bidirectional Clipboard” and “PAE/NX & Nested VT-x/AMD-V”

When defining storage, create 3 disks. 64GB, 512GB, and 512GB. I recommend using “VDI” images for the disks. The “VDI” images are, essentially “thin provisioned”. So, while the disk within the VM would appear as 512GB, the underlying file (at the host level) would only be as large as the “used” portion of that disk.

You may also want to map a shared folder to the VM so that you can keep your staging area and/or downloads outside of the VM.

Install Oracle Enterprise Linux 8 (8.5)

Insert the Oracle Enterprise Linux 8.5 media into the Virtual CD-ROM drive and boot the VM.

When you’re going through the operating system install, you want to set the following:

  • Set the Timezone
  • Set the Root Password
  • Create an additional user (“jmorrow” in my case), assign it UID & GID 1000, and set the user to be administrator.
  • Software Selection: Server with GUI
  • Network: Enabled, Connect Automatically, Assign a hostname of “”
  • On the Storage section, you’ll only want to select the Main Disk (64 GB). Choose to create a Custom Storage Configuration.
    • /boot 1 GiB
    • /home 5 GiB
    • swap 18 GiB
      IMPORTANT: Swap must be NO LESS THAN 17,179,869,184 bytes (16GB) or it will fail the installer check!
    • Use the remainder of the volume for the root volume (/)

Reboot the system when the installer finishes.

Install the VirtualBox Guest Additions

Install prerequisites for VirtualBox Guest Additions

dnf install -y kernel-uek-devel-$(uname -r) perl 
make bzip2 gzip unzip tar

dnf update -y

From the Virtual Box Menu at the top of the screen, choose “Devices –> Insert Guest Additions CD Image”. At that point, a pop-up should appear in the VM to install the Guest Additions. Follow the instructions.

Reboot the VM when done.

The Guest Additions will enable things between the Host Machine and the Guest (like cut and paste and the shared filesystems). It will also help with larger displays and keyboard/mouse capture.

Add the EPEL Repository

The EPEL “Extra Packages for Enterprise Linux” repository contains a number of useful tools that I like on Linux boxes.

tee /etc/yum.repos.d/ol8-epel.repo<<EOF
name= Oracle Linux \$releasever EPEL (\$basearch)

Pre-Create Users/Groups [CONDITIONAL]

We’re going to use the pre-install packages from Oracle to do most of the operating system prep. However, in my case, I’m wanting to use specific UID/GID numbers for user and group creation. So, we’re going to pre-create those users and groups here. If you’re not concerned with the UID/GID numbers, you can skip this step.

groupadd -g 2000 dba
groupadd -g 2001 oinstall
groupadd -g 2002 oper
groupadd -g 2003 backupdba
groupadd -g 2004 dgdba
groupadd -g 2005 kmdba
groupadd -g 2006 racdba
groupadd -g 2007 asmadmin
groupadd -g 2008 asmoper
groupadd -g 2010 oraagent
useradd -u 2000 -g dba -N -m -c "Oracle Database Owner" oracle
useradd -u 3000 -g dba -N -m -c "Oracle Applications Owner" applmgr

Install Prerequisites for E-Business Suite R12.2 [MOS 1330701.1]

dnf install -y oraclelinux-release
dnf config-manager --set-enabled ol8_addons
dnf install -y oracle-ebs-server-R12-preinstall.x86_64

The oracle-ebs-server-R12-preinstall.x86_64 package will handle most of the configurations mentioned in MOS 1330701.1. It will also create the following users and groups (if they don’t already exist):


Install Prerequisites for RDBMS 19c [MOS 2552181.1]

dnf install -y oracle-database-preinstall-19c

This package will create the following users and groups on top of what the EBS package creates (if they don’t already exist):


Install Additional Packages [MOS 2790032.1]

When I was building the staging area, I encountered MOS 2790032.1.

dnf install -y libnsl.i686

Install Additional Packages [OPTIONAL]

Many of these are things that I’ve found useful/necessary with E-Business Suite systems. They are not necessary to complete the EBS or RDBMS intallation.

dnf install -y fontconfig-devel.x86_64 libXrender-devel.x86_64 screen.x86_64 xinetd.x86_64 dos2unix.x86_64 curl.x86_64 wget.x86_64 htop.x86_64

Modify User/Group Membership [CONDITIONAL]

This is largely for convenience. We want to make sure that certain users have access to the Virtual Box Shared Folders (vboxsf). Additionally, we want to make sure that my personal user (jmorrow) can sudo easily.

usermod -G vboxsf,oinstall,dba oracle
usermod -G vboxsf,oinstall,dba applmgr
usermod -G vboxsf,oinstall,dba,wheel jmorrow

Add Additional Volumes

This is where we bring in those additional disks that we created along with the Virtual Machine.

Create the volume for our Oracle Software Installation (/oracle)

# Create the volume
pvcreate /dev/sdb
vgcreate OracleVG /dev/sdb
lvcreate -l 100%FREE -n OracleLV OracleVG

# Put a filesystem on it
mkfs.xfs /dev/OracleVG/OracleLV

# Update /etc/fstab, create the mountpoint, and mount the volume
export BLKID=`blkid -o export /dev/OracleVG/OracleLV|grep "^UUID="|cut -f2 -d"="`

echo "UUID=${BLKID} /oracle/PROD xfs defaults 1 2" >>/etc/fstab
mkdir -p /oracle/PROD
mount /oracle/PROD

Create the volume for the Oracle Database (/oradata)

# Create the volume
pvcreate /dev/sdc
vgextend OracleVG /dev/sdc
lvcreate -l 100%FREE -n OradataLV OracleVG

# Put a filesystem on it
mkfs.xfs /dev/OracleVG/OradataLV

# Update /etc/fstab, create the mountpoint, and mount the volume
export BLKID=`blkid -o export /dev/OracleVG/OradataLV|grep "^UUID="|cut -f2 -d"="`
echo "UUID=${BLKID} /oradata/PROD xfs defaults 1 2" >>/etc/fstab
mkdir -p /oradata/PROD
mount /oradata/PROD

Create the volume for the Oracle Database Archivelogs (/oraarch)

# Create the volume
pvcreate /dev/sdd
vgextend OracleVG /dev/sdd
lvcreate -l 100%FREE -n OraarchLV OracleVG

# Put a filesystem on it
mkfs.xfs /dev/OracleVG/OraarchLV

# Update /etc/fstab, create the mountopint, and mount the volume
export BLKID=`blkid -o export /dev/OracleVG/OraarchLV|grep "^UUID="|cut -f2 -d"="`
echo "UUID=${BLKID} /oraarch/PROD xfs defaults 1 2" >>/etc/fstab
mkdir -p /oraarch/PROD
mount /oraarch/PROD


This will run for about 5 minutes (depending on your system).

fixfiles relabel 

Prepare the oraInventory

We’re going to pre-create the oraInventory to our preferences and so that ownership/permissions are correct.

echo "inst_group=dba" > /etc/oraInst.loc
echo "inventory_loc=/var/opt/oracle/oraInventory" >>/etc/oraInst.loc
mkdir -p /var/opt/oracle/oraInventory

Adjust Ownership & Permissions

chown -R oracle:oinstall /var/opt/oracle /etc/oraInst.loc
chmod u+rw,g+rw,o+r /etc/oraInst.loc

chown -R oracle:dba /oracle/PROD /oradata/PROD /oraarch/PROD
chmod -R u+rwX,g+rwX,o+rX /var/opt/oracle /oracle/PROD

Update /etc/hosts

Oracle E-Business Suite requires that the entry for this host is formatted as such:

<IP Address> <hostname.domainname> <hostname>

Determine your IP address (ip addr show) and assign that to the IPADDR variable. For the purpose of illustration, we’re going to use

export IPADDR=
echo "${IPADDR} `hostname` `hostname -s`" >> /etc/hosts
cd /usr/lib
ln -s

And that’s it. The operating system is prepared.

For our next post, we’ll build the staging area and perform the Fresh Installation of Oracle E-Business Suite R12.2.11 and RDBMS 12cR1.

To be continued…

Leave a Reply