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 “prod.mydomain.com”
- 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
[ol8_developer_EPEL]
name= Oracle Linux \$releasever EPEL (\$basearch)
baseurl=https://yum.oracle.com/repo/OracleLinux/OL8/developer/EPEL/\$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
EOF
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):
oinstall:65535
dba:65536
oracle:65535
applmgr:65536
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):
oper:54323
backupdba:54324
dgdba:54325
kmdba:54326
racdba:54330
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
Update SELINUX
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 192.168.1.100.
export IPADDR=
echo "${IPADDR} `hostname` `hostname -s`" >> /etc/hosts
Create the Motif Library Symbolic LInk
cd /usr/lib
ln -s libXm.so.4.0.4 libXm.so.2
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…