How to install Oracle Database 12c Release 1 (12.1) Installation On Oracle Linux 7

This article cover the basic installation of Oracle Database 12c Release 1 (12.1) 64-bit on Oracle Linux 7 64-bit. This article is based on a server installation with a minimum of 2G swap and secure Linux set to permissive.

We have covered the following topics in this article
  • Download Software
  • Unpack Files
  • Hosts File
  • Set Kernel Parameters
  • Setup
  • Installation
  • Post Installation

Download Software

Download the Oracle software from OTN or MOS depending on your support status.

Unpack Files

Unzip the files.
You should now have a single directory called "database" containing installation files.

Hosts File

The "/etc/hosts" file must contain a fully qualified name for the server.

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

Set Kernel Parameters

Add or amend the following lines in the "/etc/sysctl.conf" file.
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
Run the following command to change the current kernel parameters.
/sbin/sysctl -p
Add the following lines to the "/etc/security/limits.conf" file.
oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    2047
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768
Stop and disable the firewall. You can configure it later if you wish.
# systemctl stop firewalld
# systemctl disable firewalld
Set SELinux to permissive by editing the "/etc/selinux/config" file, making sure the SELINUX flag is set as follows.
The server will need a reboot for the change to take effect.


Setup the DVD as a Yum repository.

The following packages are listed as required, including the 32-bit version of some of the packages. Many of the packages should be installed already.
yum install --enablerepo=dvd binutils -y
#yum install --enablerepo=dvd compat-libstdc++-33 -y
#yum install --enablerepo=dvd compat-libstdc++-33.i686 -y
yum install --enablerepo=dvd gcc -y
yum install --enablerepo=dvd gcc-c++ -y
yum install --enablerepo=dvd glibc -y
yum install --enablerepo=dvd glibc.i686 -y
yum install --enablerepo=dvd glibc-devel -y
yum install --enablerepo=dvd glibc-devel.i686 -y
yum install --enablerepo=dvd ksh -y
yum install --enablerepo=dvd libgcc -y
yum install --enablerepo=dvd libgcc.i686 -y
yum install --enablerepo=dvd libstdc++ -y
yum install --enablerepo=dvd libstdc++.i686 -y
yum install --enablerepo=dvd libstdc++-devel -y
yum install --enablerepo=dvd libstdc++-devel.i686 -y
yum install --enablerepo=dvd libaio -y
yum install --enablerepo=dvd libaio.i686 -y
yum install --enablerepo=dvd libaio-devel -y
yum install --enablerepo=dvd libaio-devel.i686 -y
yum install --enablerepo=dvd libXext -y
yum install --enablerepo=dvd libXext.i686 -y
yum install --enablerepo=dvd libXtst -y
yum install --enablerepo=dvd libXtst.i686 -y
yum install --enablerepo=dvd libX11 -y
yum install --enablerepo=dvd libX11.i686 -y
yum install --enablerepo=dvd libXau -y
yum install --enablerepo=dvd libXau.i686 -y
yum install --enablerepo=dvd libxcb -y
yum install --enablerepo=dvd libxcb.i686 -y
yum install --enablerepo=dvd libXi -y
yum install --enablerepo=dvd libXi.i686 -y
yum install --enablerepo=dvd make -y
yum install --enablerepo=dvd sysstat -y
yum install --enablerepo=dvd unixODBC -y
yum install --enablerepo=dvd unixODBC-devel -y
yum install --enablerepo=dvd zlib-devel -y
Create the new groups and users.
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
#groupadd -g 54324 backupdba
#groupadd -g 54325 dgdba
#groupadd -g 54326 kmdba
#groupadd -g 54327 asmdba
#groupadd -g 54328 asmoper
#groupadd -g 54329 asmadmin

useradd -u 54321 -g oinstall -G dba,oper oracle
passwd oracle
Note. We are not going to use the extra groups, but include them if you do plan on using them.
Create the directories in which the Oracle software will be installed.
mkdir -p /u01/app/oracle/product/
chown -R oracle:oinstall /u01
chmod -R 775 /u01
If you are using X Emulation, login as root and issue the following command.
xhost +
Login as the oracle user and add the following lines at the end of the "/home/oracle/.bash_profile" file.
# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP

export ORACLE_HOSTNAME=ol7.localdomain
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/
export ORACLE_SID=cdb1

export PATH=/usr/sbin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib


Log into the oracle user. If you are using X emulation then set the DISPLAY environmental variable.
DISPLAY=:0.0; export DISPLAY
Start the Oracle Universal Installer (OUI) by issuing the following command in the database directory.
Lets begin the installation, following step by step screenshots will help you to install oracle database under oracle linux 7.

The "Database Configuration Assistant Complete" screen displays the Database Express 12c URL, which will be something like "https://yourdbhost:5500/em".
  • When clicking "Next" on the "Download Software Updates" screen you will get the following message. Click the "Yes" button.
    "[INS-13001] Environment does not meet minimum requirements.
    Are you sure you want to continue?
  • During the linking phase, you will see the following error.
    Error in invoking target 'links proc gen_pcscfg procob' of makefile
    for details.

    To fix it, do the following:
    rm -rf $ORACLE_HOME/lib/stubs/*
    cp $ORACLE_HOME/rdbms/lib/ $ORACLE_HOME/rdbms/lib/

    Perform the following modifications to the "$ORACLE_HOME/rdbms/lib/" file.
    # Line 176
    # FROM:
    # TO  :
    # Line 279-280
    # FROM:
    # TO  :
    LINK=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS) $(COMPSOBJS) -Wl,--no-as-needed
    LINK32=$(FORT_CMD) $(PURECMDS) $(ORALD) $(LDFLAGS32) $(COMPSOBJS) -Wl,--no-as-needed
    # Line 3041-3042
    # FROM:
    # TO  :
            $(LLIBTHREAD) $(LLIBCLNTSH) $(LINKLDLIBS) -lnnz12

    Click the "Retry" button.
  • Later, you might see the following error.
    Error in invoking target 'install' of makefile 
    for details.

    To fix it, do the following:
    rm -rf $ORACLE_HOME/lib/stubs/*
    cp $ORACLE_HOME/ctx/lib/ $ORACLE_HOME/ctx/lib/

    Perform the following modifications to the "$ORACLE_HOME/ctx/lib/" file.
    # Line 154
    # FROM:
    # TO  :
    LINK=$(LDCCOM) --Wl,--no-as-needed

    Click the "Retry" button.

Post Installation

Edit the "/etc/oratab" file setting the restart flag for each instance to 'Y'.
Due to the issues during the linking phase, it probably makes sense to do a relink, just to make sure.
./relink all
# Following line should return no errors.
grep -i err $ORACLE_HOME/install/relink.log
dbstart $ORACLE_HOME
Like This Article ? :

We encourage healthy criticism, so do not hesitate to leave your thoughts in comment box.