Oracle Database 12c Step by Step Installation On Linux -1


I will explain how to install Oracle Database 12c step by step in this post.

Oracle 12c Kurulum 15



You can download Oracle Database 12c installation files from this link. If you don’t install Linux operating system, you can read follow article to install Oracle Linux.



Before starting the installation, I will tell you the necessary Linux System packages, Kernel Parameters, Limit Parameters and the creation of the required Groups in the Oracle installation.

First of all, we are running the necessary system packages before Oracle installation with the root user like following.


yum -y install binutils
yum -y install compat-libcap1
yum -y install compat-libstdc++-33
yum -y install compat-libstdc++-33.i686
yum -y install gcc
yum -y install gcc-c++
yum -y install glibc
yum -y install glibc.i686
yum -y install glibc-devel
yum -y install glibc-devel.i686
yum -y install ksh
yum -y install libgcc
yum -y install libgcc.i686
yum -y install libstdc++
yum -y install libstdc++.i686
yum -y install libstdc++-devel
yum -y install libstdc++-devel.i686
yum -y install libaio
yum -y install libaio.i686
yum -y install libaio-devel
yum -y install libaio-devel.i686
yum -y install libXext
yum -y install libXext.i686
yum -y install libXtst
yum -y install libXtst.i686
yum -y install libX11
yum -y install libX11.i686
yum -y install libXau
yum -y install libXau.i686
yum -y install libxcb
yum -y install libxcb.i686
yum -y install libXi
yum -y install libXi.i686
yum -y install make
yum -y install sysstat
yum -y install unixODBC
yum -y install unixODBC-devel


In order to install these packages, linux server has to access internet.


You can just install oracle preinstall package instead of above commands. This ” oracle-rdbms-server-12cR1-preinstall.x86_64 ” package consist of all packages that I wrote above.

[root@MehmetSalih ~]# yum install oracle-rdbms-server-12cR1-preinstall.x86_64


After making sure that Oracle preinstall package is properly installed, we add the following parameters to the Kernel parameter file of the server. The kernel parameter file on the server is located under / etc path as sysctl.conf.

This file can be opened with the root user with vi file editor, and add parameters as follows or if the parameter used to change the new value.


bash-4.1$ vi /etc/sysctl.conf
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


To activate this command on the server,  execute the following command.

bash-4.1$ /sbin/sysctl -p


We add the following values to the file where user limit values set.



bash-4.1$ vi /etc/security/limits.conf

# Oracle Database 12c Limit Parameters
oracle   soft   nofile    1024
oracle   hard   nofile    65536
oracle   soft   nproc    2047
oracle   hard   nproc    16384
oracle   soft   stack    10240
oracle   hard   stack    32768


Now let’s create the necessary users and groups for Oracle installation as follows. But If you install ” oracle-rdbms-server-12cR1-preinstall.x86_64 ” preinstall package, these are created automatically.


bash-4.1$ groupadd -g 54321 oinstall
bash-4.1$ groupadd -g 54322 dba
bash-4.1$ groupadd -g 54323 oper
bash-4.1$ groupadd -g 54327 asmdba
bash-4.1$ groupadd -g 54328 asmoper
bash-4.1$ groupadd -g 54329 asmadmin
bash-4.1$ groupadd -g 54324 backupdba
bash-4.1$ groupadd -g 54325 dgdba
bash-4.1$ useradd -u 54321 -g oinstall -G dba,oper oracle
bash-4.1$ passwd oracle -- Oracle kullanıcısının şifresini belirliyoruz.
Changing password for user oracle.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.


After creating required users, we create the following directories in order to be able to keep the installation files and Oracle Software.

bash-4.1$ mkdir -p /oracle/product/12.1.0/db
bash-4.1$ mkdir -p /oracle/oracd
bash-4.1$ chown -R oracle:oinstall /oracle
bash-4.1$ chmod -R 775 /oracle


After creating the related directories, we will finally put the following variables into the Bash profile file.


bash-4.1$ vi /home/oracle/.bash_profile
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME= MehmetSalih
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/db
export PATH=/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib


After completing requirements, lets install. I have upload the installation files on the server and opened files with unzip command  as follows.


bash-4.1$ ls -l
total 2419504
drwxr-xr-x 7 oracle oinstall       4096 Oct 24 10:48 database
-rw-r--r-- 1 root   root     1361028723 Oct 24 10:40
-rw-r--r-- 1 root   root     1116527103 Oct 24 10:45


bash-4.1$ cd database/
bash-4.1$ ls -l
total 32
drwxr-xr-x  4 oracle oinstall 4096 Oct 24 10:48 install
drwxrwxr-x  2 oracle oinstall 4096 May 24 23:43 response
drwxr-xr-x  2 oracle oinstall 4096 May 24 22:29 rpm
-rwxr-xr-x  1 oracle oinstall 7808 May 24 22:29 runInstaller
drwxrwxr-x  2 oracle oinstall 4096 May 24 23:43 sshsetup
drwxr-xr-x 14 oracle oinstall 4096 Oct 24 10:48 stage
-r-xr-xr-x  1 oracle oinstall  500 Jun 10 08:52 welcome.html



Step 1: When I execute runInstaller, the first screen will appear as below.  It asks “Do you want to receive security updates from Oracle support on this screen ” and uncheck the checkbox  and click next button to continue.


bash-4.1$ ./runInstaller 
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 500 MB.   Actual 19950 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 4085 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-10-24_10-51-26AM. Please wait ...bash-4.1$

Oracle 12c Kurulum 2


Step 2: Warning is not an important step in the following step, click Yes button and continue

Oracle 12c Kurulum 3


Step 3: In this step, updates about Oracle software, Click Skip software updates.

Oracle 12c Kurulum 4


Step 4: In this step, we select Install database software only tab and continue.

Oracle 12c Kurulum 5



Step 5: Specify whether the database configuration is a Single instance or RAC. I have chosen Single instance.

Oracle 12c Kurulum 6


Step 6:  Choose the language of the Oracle software in English.

Oracle 12c Kurulum 7


Step 7: In this step, select the Database license as Enterprise Edition and continue.

Oracle 12c Kurulum 8


Step 8:  In this step, Set the directories where Oracle software will run.

Oracle 12c Kurulum 9


Step 9: In this step, Specify all the operating system groups as dba or oinstall like following.

Oracle 12c Kurulum 10


Step 10: Before start the installation in this step, Oracle offers a summary. Click Install and start the installation of Oracle Software.

Oracle 12c Kurulum 11


Step 11: Installation continues as follows.

Oracle 12c Kurulum 12


Step 12: Before the installation is complete, Oracle wants us to run the following Configuration script with the root user from us.

Oracle 12c Kurulum 13


Copy the script and run it with the root user as below and click on the OK button.


[root@MehmetSalih ~]# /oracle/product/12.1.0/db/
Performing root user operation for Oracle 12c 

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /oracle/product/12.1.0/db

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]: y -- Bu adımları y deyip enter tuşuna basıyoruz.
   Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]: y -- Bu adımları y deyip enter tuşuna basıyoruz.
   Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) [n]: y -- Bu adımları y deyip enter tuşuna basıyoruz.
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
[root@MehmetSalih ~]#

Step 13: After running the above root scripts, the installation will be completed as follows.


Oracle 12c Kurulum 14


Oracle database 12c Software installation is completed, I will continue to explain Oracle database 12c Software installation in the next post.

Mehmet Salih Deveci

I am Certified Expert about Oracle & SQL Server database, Goldengate, Exadata Machine, Oracle Database Appliance administrator with 10+years experience.I have OCA, OCP, OCE RAC Expert Certificates I have worked 100+ Banking, Insurance, Finance, Telco and etc. clients as a Consultant, Insource or Outsource.I have done 200+ Operations in this clients such as Exadata Installation & PoC & Migration & Upgrade, Oracle & SQL Server Database Upgrade, Oracle RAC Installation, SQL Server AlwaysOn Installation, Database Migration, Disaster Recovery, Backup Restore, Performance Tuning, Periodic Healthchecks.I have done 2000+ Table replication with Goldengate or SQL Server Replication tool for DWH Databases in many clients.If you need Oracle DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS Consultancy and Training you can send my email adress DBA, SQL Server DBA, APPS DBA,  Exadata, Goldengate, EBS ve linux Danışmanlık ve Eğitim için a mail atabilirsiniz.

Leave a Reply

Your email address will not be published. Required fields are marked *