Install Oracle in silent mode 11G Release 2 (11.2) on OEL5

This article presents how to install Oracle 11G Release 2 in silent mode.

Silent mode installation allows to configure necessary Oracle components without using graphical interface nor any interaction with end user. It’s very useful method especially when you want to prepare standard installation using shell scripts.

Read following article how to install Oracle Enterprise Linux 5: Install Oracle Enterprise Linux 5 (for comfort set 4G memory for your virtual machine before proceeding with Oracle software installation).

Installation software is available on OTN version 11.2.0.1 or metalink 11.2.0.4. In this installation I’m presenting installation for 11.2.0.4 but for previous version 11.2.0.X it shouldn’t be different.

Following components will be installed in silent mode:

  • oracle binaries: Oracle Enterprise Edition 11G Release 2
  • network components: listener LISTENER
  • database components: database ORA11G.dbaora.com and database console

Oracle software that was verified

release 11.2.0.4

p13390677_112040_Linux-x86-64_1of7.zip 
p13390677_112040_Linux-x86-64_2of7.zip

OS configuration and preparation

OS configuration is executed as root. To login as root just execute following command in terminal.

su - root

Add groups

--groups for database management
--groups id are the same as for 12C installations
--some groups are not required here but can be used
--later for grid binaries installation

groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
groupadd -g 54327 asmdba
groupadd -g 54328 asmoper
groupadd -g 54329 asmadmin
Add user Oracle
--user id is the same as for 12c installations
useradd -u 54321 -g oinstall -G dba,oper,asmadmin oracle

Change password for user

passwd oracle
Add kernel parameters to /etc/sysctl.conf
kernel.shmmni = 4096 
kernel.shmmax = 4398046511104
kernel.shmall = 1073741824
kernel.sem = 250 32000 100 128

fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

Apply kernel parameters

/sbin/sysctl -p

Add following lines to set shell limits for user oracle in file /etc/security/limits.conf

oracle   soft   nproc    131072
oracle   hard   nproc    131072
oracle   soft   nofile   131072
oracle   hard   nofile   131072
oracle   soft   core     unlimited
oracle   hard   core     unlimited
oracle   soft   memlock  50000000
oracle   hard   memlock  50000000

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 oel5 oel5.dbaora.com localhost localhost.localdomain

Modify .bash_profile for user oracle in his home directory

# Oracle Settings
export TMP=/tmp

export ORACLE_HOSTNAME=oel5.dbaora.com
export ORACLE_UNQNAME=ORA11G
export ORACLE_BASE=/ora01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ORA11G

PATH=/usr/sbin:$PATH:$ORACLE_HOME/bin

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

alias cdob='cd $ORACLE_BASE'
alias cdoh='cd $ORACLE_HOME'
alias tns='cd $ORACLE_HOME/network/admin'
alias envo='env | grep ORACLE'

umask 022

Check which packages are installed and which are missing

rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n' binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
sysstat \
unixODBC \
unixODBC-devel

Install missing packages. It’s just example (many in one step):

yum install unixODBC unixODBC-devel sysstat

Stop and disable firewall

chkconfig iptables off
service iptables stop

Create directory structure

ORACLE_BASE – /ora01/app/oracle

ORACLE_HOME – /ora01/app/oracle/product/11.2.0/db_1

mkdir -p /ora01/app/oracle/product/11.2.0/db_1
chown oracle:oinstall -R /ora01

Secure Linux

Disable secure linux by editing the /etc/selinux/config file, making sure the SELINUX flag is set as follows.

SELINUX=permissive

and enforce it

setenforce Permissive

Install database software

As Oracle user unzip software

su - oracle

cd /home/oracle

--unzip software 11.2.0.4
unizp p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip

It should unzip it to one directory “database”

[oracle@oel5 ~]$ ls
database  
p13390677_112040_Linux-x86-64_1of7.zip  
p13390677_112040_Linux-x86-64_2of7.zip

Check directories and aliases for user oracle

--I defined 4 aliases in .bash_profile of user oracle to make 
--administration easier :)

[oracle@oel5 ~]$ alias envo cdob cdoh tns
alias envo='env | grep ORACLE'
alias cdob='cd $ORACLE_BASE'
alias cdoh='cd $ORACLE_HOME'
alias tns='cd $ORACLE_HOME/network/admin'

--run alias command envo to display environment settings
envo
ORACLE_UNQNAME=ORA11G
ORACLE_SID=ORA11G
ORACLE_BASE=/ora01/app/oracle
ORACLE_HOSTNAME=oel5.dbaora.com
ORACLE_HOME=/ora01/app/oracle/product/11.2.0/db_1

--run alias command cdob and cdoh to check ORACLE_BASE, ORACLE_HOME 
[oracle@oel5 ~]$ cdob
[oracle@oel5 oracle]$ pwd
/ora01/app/oracle

[oracle@oel5 db_1]$ cdoh
[oracle@oel5 db_1]$ pwd
/ora01/app/oracle/product/11.2.0/db_1

Response files

Once Oracle 11GR2 binaries are unzipped you can find in directory /home/oracle/database/response dedicated files called “response files” used for silent mode installations.

The response files store parameters necessary to install Oracle components:

  • db_install.rsp – used to install oracle binaries, install/upgrade a database in silent mode
  • dbca.rsp – used to install/configure/delete a database in silent mode
  • netca.rsp – used to configure simple network for oracle database in silent mode
cd /home/oracle/database/response

[oracle@oel5 response]$ ls
dbca.rsp  db_install.rsp  netca.rsp

Install Oracle binaries

It’s the best to preserve original response file db_install.rsp before editing it

[oracle@oel5 response]$ cp db_install.rsp db_install.rsp.bck

Edit file db_install.rsp to set parameters required to install binaries. This is just example and in next releases parameters can be different. Each of presented parameter is very well described in db_install.rsp. I just give here brief explanations.

--force to install only database software
oracle.install.option=INSTALL_DB_SWONLY

--set your hostname
ORACLE_HOSTNAME=oel5.dbaora.com

--set unix group for oracle inventory
UNIX_GROUP_NAME=oinstall

--set directory for oracle inventory
INVENTORY_LOCATION=/ora01/app/oraInventory

--set oracle home for binaries
ORACLE_HOME=/ora01/app/oracle/product/11.2.0/db_1

--set oracle home for binaries
ORACLE_BASE=/ora01/app/oracle

--set version of binaries to install
-- EE - enterprise edition
oracle.install.db.InstallEdition=EE

--force to install advanced options
oracle.install.db.EEOptionsSelection=true

--specify which advanced option to install
--  oracle.oraolap:11.2.0.4.0 - Oracle OLAP
--  oracle.rdbms.dm:11.2.0.4.0 - Oracle Data Mining
--  oracle.rdbms.dv:11.2.0.4.0 - Oracle Database Vault
--  oracle.rdbms.lbac:11.2.0.4.0 - Oracle Label Security
--  oracle.rdbms.partitioning:11.2.0.4.0 - Oracle Partitioning
--  oracle.rdbms.rat:11.2.0.4.0 - Oracle Real Application Testing
-- WATCHOUT - should be one line I have changed format here :)
--It's wrong
oracle.install.db.optionalComponents=
oracle.rdbms.partitioning:11.2.0.4.0,
oracle.oraolap:11.2.0.4.0,
oracle.rdbms.dm:11.2.0.4.0,
oracle.rdbms.rat:11.2.0.4.0

--specify extra groups for database management
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper

once edition is completed. Start binaries installation

cd /home/oracle/database
./runInstaller -silent \
-responseFile /home/oracle/database/response/db_install.rsp

output is following

[oracle@oel5 database]$ ./runInstaller -silent 
-responseFile /home/oracle/database/response/db_install.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.  
 Actual 41752 MB    Passed
Checking swap space: must be greater than 150 MB.   
Actual 4095 MB    Passed
Preparing to launch Oracle Universal Installer 
from /tmp/OraInstall2015-02-06_09-58-53PM. 
Please wait ...[oracle@oel5 database]$ No protocol specified
[WARNING] - My Oracle Support Username/Email Address Not Specified
[SEVERE] - The product will be registered 
anonymously using the specified email address.
You can find the log of this install session at:
 /ora01/app/oraInventory/logs/installActions2015-02-06_09-58-53PM.log
The installation of Oracle Database 11g was successful.
Please check 
'/ora01/app/oraInventory/logs/silentInstall2015-02-06_09-58-53PM.log' 
for more details.

As a root user, execute the following script(s):
    1. /ora01/app/oraInventory/orainstRoot.sh
    2. /ora01/app/oracle/product/11.2.0/db_1/root.sh

Successfully Setup Software.

you are asked to run two scripts as user root. Once it’s done binaries are installed

[root@oel5 /]# 

/ora01/app/oraInventory/orainstRoot.sh
/ora01/app/oracle/product/11.2.0/db_1/root.sh

quick binary verification

[oracle@oel5 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Fri Feb 6 22:08:57 2015
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to an idle instance.
SQL>

Configure Oracle Net

Again based on response file Oracle Net will be configured

cd /home/oracle/database/response
cp netca.rsp netca.rsp.bck

You can edit netca.rsp to set own parameters. I didn’t changed anything here. So just start standard configuration. It will configure LISTENER with standard settings.

netca -silent -responseFile /home/oracle/database/response/netca.rsp

example output

netca -silent -responseFile /home/oracle/database/response/netca.rsp

Parsing command line arguments:
  Parameter "silent" = true
  Parameter "responsefile" = /home/oracle/database/response/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
  Running Listener Control: 
    /ora01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER
  Listener Control complete.
  Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0

Check LISTENER status

lsnrctl status

LSNRCTL for Linux: Version 11.2.0.4.0 - 
Production on 06-FEB-2015 23:00:09

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 
                          - Production
Start Date                07-AUG-2015 22:46:18
Uptime                    0 days 0 hr. 2 min. 2 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   
/ora01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         
/ora01/app/oracle/diag/tnslsnr/oel5/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oel5)(PORT=1521)))
The listener supports no services
The command completed successfully

Configure database

The last setup is to create new database ORA11G.dbaora.com

Prepare directories for database datafiles and flash recovery area

mkdir /ora01/app/oracle/oradata
mkdir /ora01/app/oracle/flash_recovery_area

backup original response file for dbca

cd /home/oracle/database/response

cp dbca.rsp dbca.rsp.bck
vi dbca.rsp

set own parameters

--global database name
GDBNAME = "ORA11G.dbaora.com"

--instance database name
SID = "ORA11G"

--template name used to create database
TEMPLATENAME = "General_Purpose.dbc"

--password for user sys
SYSPASSWORD = "oracle"

--password for user system
SYSTEMPASSWORD = "oracle"

--creates database console
EMCONFIGURATION = "LOCAL"

--password for sysman user
SYSMANPASSWORD = "oracle"

--password for dbsnmp user
DBSNMPPASSWORD = "oracle"

--default directory for oracle database datafiles
DATAFILEDESTINATION=/ora01/app/oracle/oradata

--default directory for flashback dataa
RECOVERYAREADESTINATION=/ora01/app/oracle/flash_recovery_area

STORAGETYPE=FS

--database character set
CHARACTERSET = "AL32UTF8"

--national database character set
NATIONALCHARACTERSET= "AL16UTF16"

--listener name to register database to
LISTENERS = "LISTENER"

--force to install sample schemas on the database
SAMPLESCHEMA=TRUE

--specify database type
--has influence on some instance parameters
DATABASETYPE = "OLTP"

--force to use autmatic mamory management
AUTOMATICMEMORYMANAGEMENT = "TRUE"

--defines size of memory used by the database
TOTALMEMORY = "800"

run database installation

dbca -silent -responseFile /home/oracle/database/response/dbca.rsp

Example output

dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
Copying database files
1% complete
3% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
57% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file 
"/ora01/app/oracle/cfgtoollogs/dbca/ORA11G/ORA11G.log" 
for further details.

Verify connection

[oracle@oel5 admin]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Fri Feb 6 23:45:16 2015
Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition 
Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining 
and Real Application Testing options

SQL> show parameter db_name

NAME         TYPE    VALUE
------------ ------- -------
db_name      string  ORA11G
SQL>

Check status of database console

[oracle@oel5 ~]$ emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.4.0 
Copyright (c) 1996, 2013 Oracle Corporation.  All rights reserved.
https://oel5.dbaora.com:1158/em/console/aboutApplication
Oracle Enterprise Manager 11g is running. 
------------------------------------------------------------------

Edit the “/etc/oratab” file to set restart flag for ORA11G to ‘Y’.

ORA11G:/ora01/app/oracle/product/11.2.0/db_1:Y

Have a fun 🙂

Tomasz

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.