Monday 27 October 2014

Oracle Database 11g R2 Silent Installation (OUI)

In this article we will learn Oracle Database 11g R2 Silent Installation (OUI) on Linux

STEP 1: Hardware Requirements Check:
Note: Login to the system as a root user for performing the below activities.

Memory Requirements:

Minimum:1 GB of RAM
Recommended:2 GB of RAM
To determine the RAM size, enter the following command:

[root@oelinux ~]# grep MemTotal /proc/meminfo

Note:If the size of the RAM is less than the required size, then you must install more memory before continuing.

Available RAM
SWAP Space Requirement
Between 1 GB and 2 GB
1.5 times the size of the RAM
Between 2 GB and 16 GB
Equal to the size of the RAM
More than 16 GB
16 GB

To determine the size of the configured swap space, enter the following command:

[root@oelinux ~]# grep SwapTotal /proc/meminfo

Note:If there is a need of increasing swap space, see O/S documentation for increasing the swap space.

Disk Space Requirements:

At least 1 GB of free disk space should be available in the /tmp directory.
To determine the amount of disk space available in the /tmp directory, enter the following command:

[root@oelinux ~]# df -kh /tmp

If there is less than 1 GB of free disk space available in the /tmp directory, then do one of the below mentioned steps:
Ξ Delete unnecessary files from the tmp directory.
Ξ Increase the size of tmp directory as follows (Extend the file system that contains the /tmp directory):

Disk space requirements for software files, and data files for each installation type on Linux x86-64:


Installation Type
Minimum Requirement for Software Files (GB)
Enterprise Edition
4.35
Standard Edition
4.22
Installation Type
Minimum Requirement for Data Files (GB)
Enterprise Edition
1.7
Standard Edition
1.5

To determine the amount of free disk space on the system, enter the following command:

[root@oelinux ~]# df -kh 

If your diskspace is not enough, please contact administrator for increasing the disk space.


STEP2 : Package Requirements Check: 

After the installation of OEL5_x64, the next task is to install all packages required by Oracle Database 11g R2 x64. During the installation process the Oracle Universal Installer performs prerequisites checks before the actual installation of database. For ensuring that these prerequisite checks complete successfully, ensure that all the packages listed below are installed properly.The following are the list of packages required for Oracle Database 11g Release 2 (11.2) x64 on OEL5 x64:
  • binutils-2.17.50.0.6
  • compat-libstdc++-33-3.2.3
  • compat-libstdc++-33-3.2.3 (32 bit)
  • elfutils-libelf-0.125
  • elfutils-libelf-devel-0.125
  • gcc-4.1.2
  • gcc-c++-4.1.2
  • glibc-2.5-24
  • glibc-2.5-24 (32 bit)
  • glibc-common-2.5
  • glibc-devel-2.5
  • glibc-devel-2.5 (32 bit)
  • glibc-headers-2.5
  • ksh-20060214
  • libaio-0.3.106
  • libaio-0.3.106 (32 bit)
  • libaio-devel-0.3.106
  • libaio-devel-0.3.106 (32 bit)
  • libgcc-4.1.2
  • libgcc-4.1.2 (32 bit)
  • libstdc++-4.1.2
  • libstdc++-4.1.2 (32 bit)
  • libstdc++-devel 4.1.2
  • make-3.81
  • sysstat-7.0.2
To determine whether the required packages are installed, enter commands similar to the following:
[root@oelinux ~]# rpm -q package_name
e.g: [root@oelinux ~]# rpm –q binutils-2.17.50.0.6
If the package is not installed then install the package as mentioned below:
[root@oelinux ~]# rpm -ivh package_name

N.B: To use ODBC, you must also install the following additional ODBC RPMs which are listed below:
  • unixODBC-2.2.11 (32-bit)
  • unixODBC-devel-2.2.11 (64-bit)
  • unixODBC-2.2.11 (64-bit)
The odbc packages can be downloaded from http://www.unixodbc.org and can be installed.


STEP3: Network Configuration:
Edit /etc/hosts file:

Ensure that the hostname(oelinux) is not mentioned in the loopback address information in the /etc/hosts file.

Disable SELinux and Firewall:

[root@oelinux ~]# system-config-selinux
[root@oelinux ~]# service iptables stop

STEP 4: Creation of Required O/S Users and Groups:
The following local operating system user and groups are required for oracle database installation:
  • Oracle Inventory Group -- oinstall
  • OSBDA Group -- dba
  • OSOPER Group -- oper
  • Oracle Software Owner User -- Oracle
Check whether the groups/user exists , if doesn't exist please create them.
Follow the below mentioned steps...
  1. To determine whether "oinstall" group exists, type the following command:
    [root@oelinux ~]# more /etc/oraInst.loc
    If the output shows oinstall group then the group exists and need not to be created.
    .
  2. To determine whether "dba" group exists, type the following command:
    [root@oelinux ~]# grep dba /etc/group
    If the output shows dba group then the group exists and need not to be created.
    .
  3. To determine whether "oracle" user exists, type the following command:
    [root@oelinux ~]# id oracle
    If the output shows oracle user then the user exists and need not to be created.
    The output should be similar to following, indicating "oinstall" as primary and "dba" as secondary group.
    uid=1001(oracle) gid=1001(oinstall) groups=1002(dba),1003(oper).
    If the primary group is not "oinstall" and the user "oracle" is not the member of "dba" group then we have to modify the user "oracle" as mentioned below::
    [root@oelinux ~]#usermod -g oinstall -G dba oracle
  4. If the user or the required groups doesn't exist then create them as mentioned below:
    [root@oelinux ~]# groupadd -g 1001 oinstall
    [root@oelinux ~]# groupadd -g 1002 dba
    [root@oelinux ~]# groupadd -g 1003 oper

    [root@oelinux ~]# useradd -m -u 1001 -g oinstall -G dba,oper oracle
    Now check the status of "oracle" user.
    [root@oelinux ~]# id oracle
    The output should be similar to following, indicating "oinstall" as primary and "dba" as secondary group.
    uid=1001(oracle) gid=1001(oinstall) groups=1002(dba),1003(oper).
    Now set the password of "oracle" user.
    [root@oelinux ~]# passwd oracle
    and input a password for "oracle" user.
  5. Verify That the User nobody Exists:
    Before installation of oracle software, complete the following steps to verify that the user "nobody" exists on the system:
    To determine if the user exists, enter the following command:
    [root@oelinux ~]# id nobody
    If this command displays information about the "nobody" user, then you do not have to create that user.
    If the user "nobody" does not exist, then enter the following command to create it:
    [root@oelinux ~]# useradd nobody
STEP5: Configuration of Kernel Parameters:
Verify that the kernel parameters shown in the following table are set to values greater than or equal to the minimum value shown.
Using any text editor, edit the /etc/sysctl.conf file, and add or edit lines similar to the following:
fs.aio-max-nr
1048576
fs.file-max
6815744
kernel.shmall
2097152
kernel.shmmax
536870912
kernel.shmmni
4096
kernel.sem
250 32000 100 128
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

[root@oelinux ~]# vim /etc/sysctl.conf

After adding the above lines to the /etc/sysctl.conf file, they persist each time the system reboots. If you would like to make these kernel parameter value changes to the current system without having to reboot, enter the following command:
[root@oelinux ~]# sysctl -p

If the output of the above command shows any error, please rectify the error before proceeding to next step.
To improve the performance on Linux systems, Oracle recommends us to increase the shell limits for the oracle software owner user "oracle".
Update the resource limits in the /etc/security/limits.conf configuration file for the installation owner (Here "oracle" user is the owner).
----------------------------
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
----------------------------
[root@oelinux ~]# vim /etc/security/limits.conf

STEP6 : Creation of Required Directories: 

The next step is to create a directory that will be used to store the "Oracle Database software", "Oracle Database Datafiles" and "Flash Recovery Data".
After the directory is created, we must then specify the correct owner, group, and permissions for it.

[root@oelinux ~]# mkdir -p /data/oracle/app/
[root@oelinux ~]# chown -R oracle:oinstall /u01/app/
[root@oelinux ~]# chmod -R 775 /u01/app/

STEP 7:Configuring the oracle User’s Environment: 

Set the default file mode creation mask (umask) to 022 for "oracle" user. For setting so, do the following:
[root@oelinux ~]# su - oracle 

[oracle@oelinux ~]$ vim ~/.bash_profile

Add a line as written below and save the file.

umask 022

N.B:You do not have to set the DISPLAY environment variable if you are completing a silent mode installation.

STEP 8: Installation of Oracle Database using silent mode: 

After configuring the oracle user’s environment, create a response file for silent installation and configuration of the database.
A response file is available in the response directory of the installation disc.
I will copy and edit the response file for our purpose.
I will install and configure database through the response file.
Specify the Installation Option in the response file:
Parameter
Response
oracle.install.option
INSTALL_DB_AND_CONFIG
ORACLE_HOSTNAME
oelinux
UNIX_GROUP_NAME
oinstall
INVENTORY_LOCATION
/data/oracle/app/oraInventory
SELECTED_LANGUAGES
en
ORACLE_HOME
/data/oracle/app/oracle/product/11.2.0/db_1
ORACLE_BASE
/data/oracle/app/oracle
oracle.install.db.InstallEdition
EE
oracle.install.db.EEOptionsSelection
false
oracle.install.db.DBA_GROUP
oinstall
oracle.install.db.OPER_GROUP
oinstall
oracle.install.db.config.starterdb.type
GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName
TEST
oracle.install.db.config.starterdb.SID
TEST
oracle.install.db.config.starterdb.characterSet
AL32UTF8
oracle.install.db.config.starterdb.memoryOption
true
oracle.install.db.config.starterdb.memoryLimit
700
oracle.install.db.config.starterdb.installExampleSchemas
false
oracle.install.db.config.starterdb.enableSecuritySettings
true
oracle.install.db.config.starterdb.password.ALL
Amit123
oracle.install.db.config.starterdb.control
DB_CONTROL
oracle.install.db.config.starterdb.automatedBackup.enable
false
oracle.install.db.config.starterdb.storageType
FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation
/data/oracle/app/oracle/oradata
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation
/data/oracle/app/oracle/flash_recovery_area
SECURITY_UPDATES_VIA_MYORACLESUPPORT
false
DECLINE_SECURITY_UPDATES
true
oracle.installer.autoupdates.option
SKIP_UPDATES

click here  sample .rsp file for sample .rsp file.
 

Open terminal  go to software directory and run installer with the response file option as "oracle" user.
[oracle@oelinux ~]$ ./runInstaller -silent -responseFile /data/oracle/db.rsp -ignorePrereq -ignoreSysPrereqs -printtime -showProgress -force

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 183254 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 16383 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2014-10-27_01-01-43PM. Please wait ...[oracle@NVMBD1BZY150D00 database]$ [WARNING] [INS-30011] The ADMIN password entered does not conform to the Oracle recommended standards.
   CAUSE: Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
   ACTION: Provide a password that conforms to the Oracle recommended standards.
You can find the log of this install session at:
 /data/oracle/app/oraInventory/logs/installActions2014-10-27_01-01-43PM.log

Prepare in progress.
..................................................   8% Done.

Prepare successful.

Copy files in progress.
..................................................   13% Done.
..................................................   19% Done.
..................................................   24% Done.
..................................................   29% Done.
..................................................   36% Done.
..................................................   41% Done.
..................................................   46% Done.
..................................................   51% Done.
..................................................   56% Done.
..................................................   61% Done.
..................................................   66% Done.
........................................
Copy files successful.

Link binaries in progress.
..........
Link binaries successful.

Setup files in progress.
..................................................   71% Done.
..................................................   76% Done.

Setup files successful.
The installation of Oracle Database 11g was successful.
Please check '/data/oracle/app/oraInventory/logs/silentInstall2014-10-27_01-01-43PM.log' for more details.

Oracle Net Configuration Assistant in progress.
..................................................   86% Done.

Oracle Net Configuration Assistant successful.

Oracle Database Configuration Assistant in progress.
..................................................   95% Done.

Oracle Database Configuration Assistant successful.

Execute Root Scripts in progress.

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


..................................................   100% Done.

Execute Root Scripts successful.
Successfully Setup Software.

Wait for the installation step to prompt for executing the scripts.
Open terminal and execute the scripts mentioned in the above screenshot as "root" user.
[root@oelinux ~]# / data/oracle/app/oraInventory/orainstRoot.sh

After this run the second script, also as a "root" user .

[root@oelinux ~]# /data/oracle/app/oracle/product/11.2.0/db_1/root.sh

This finishes the Oracle database installation and configuration.

View the setup logfiles :

[root@oelinux ~]# cat /data/oracle/app/oraInventory/logs/silentinstallxxxxx.log

[root@oelinux ~]# cat /data/oracle/app/oraInventory/logs/installactionsxxxxx.log

Set Oracle User Profile :

Open the profile file and add the below mentioned lines:

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=TEST
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

[oracle@oelinux ~]$ vim ~/.bash_profile

Or use any editor of your choice, to edit the profile of "Oracle" user.
After editing the profile run it for checking errors and loading.

[oracle@oelinux ~]$ . ~/.bash_profile
If there is any syntax error in the profile it will be reported.If there is no error then we will get the prompt silently.

Connect to the Database:
 
[oracle@oelinux ~]$ ps -eaf | grep pmon
[oracle@oelinux ~]$ export ORACLE_SID=TEST
[oracle@oelinux ~]$ sqlplus sys@TEST as sysdba
And you will be connected to the database.


I hope this article helped you. Your suggestions/feedback are most welcome.

Keep learning... Have a great day!!!