Sunday, 9 June 2013

Install Oracle Database 11G R2 Using ASM On Oracle Linux 6

1- Oracle ASM 11g installation new requirements:

During an Oracle Database 11g installation, Oracle will requires come changes to

the installation process. These changes include database out-of-box memory calculations,

character set selection, support for new SYSASM role, and a corresponding OS group, OSASM,

that is to use to secure priviladges to perform ASM tasks.

2- Download the 11g Oracle Database software

Oracle software can be dowloaded from Oracle download repository, you can download

from: http://www.oracle.com/technology/software/products/database/index.html

3- Checking the hardware requirements

 - At least 1GB RAM

 - Swap area is set up as follow:

   If  your server has RAM = 1024MB to 2048Mb
   then SWAP = 1.5 times RAM
   If your server has RAM > 2048MB and < 8192MB
   then SWAP= RAM
   If your server has RAM > 8192MB
   then SWAP=0.75 * RAM- Between 150 and 200 MB of disk space in the /tmp directory

- Disk Space Requirements:

    Enterprise Edition 3.47 GB
Standard Edition 3.22 GB
Custom 3.45 GBRun the following commands to check your server memory and disk space:

   # grep MemTotal /proc/meminfo
   # free -t
   #df -k /tmp

4- Checking the software requirements

 Operating Systems:

    Oracle Enterprise Linux 4.0
Oracle Enterprise Linux 5.0
    Oracle Enterprise Linux 6.0
Red Hat Enterprise Linux 4.0
Red Hat Enterprise Linux 5.0
SUSE Linux Enterprise Server 10.0

5- Checking Kernel Parameters:

Oracle recommend the following minimum parameter settings

  fs.suid_dumpable = 1
  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

Edit the /etc/sysctl.conf and add above kernel parameters

Run the following command to change the current kernel parameters

#/sbin/sysctl -p

The current values can be tested using the following command

# /sbin/sysctl -a | grep <param-name>

Add the following lines to the "/etc/security/limits.conf" file.

  oracle              soft    nproc   2047
  oracle              hard    nproc   16384
  oracle              soft    nofile  4096
  oracle              hard    nofile  65536
  oracle              soft    stack   10240Install Required Linux Packages for Oracle

After installing the Linux OS, the next step is to verify and install all packages

required for Oracle Database 11g Release 2. The Oracle Universal Installer (OUI)

performs checks on the machine during installation to verify that it meets the

appropriate operating system package requirements.

To ensure that these checks complete successfully, verify the software requirements

documented in this section before starting the Oracle install.

64-bit (x86_64) Installations

binutils-2.20.51.0.2
compat-libcap1-1.10
compat-libcap1-1.10 (32-bit)
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.148
elfutils-libelf-devel-0.148
gcc-4.4.4
gcc-c++-4.4.4
glibc-2.12-1
glibc-2.12-1 (32 bit)
glibc-common-2.12
glibc-devel-2.12
glibc-devel-2.12 (32 bit)
glibc-headers-2.12
ksh-20100621
libaio-0.3.107
libaio-0.3.107 (32 bit)
libaio-devel-0.3.107
libaio-devel-0.3.107 (32 bit)
libgcc-4.4.4
libgcc-4.4.4 (32 bit)
libstdc++-4.4.4
libstdc++-4.4.4 (32 bit)
libstdc++-devel-4.4.4
libstdc++-devel-4.4.4 (32 bit)
make-3.81
numactl-devel-2.0.3
sysstat-9.0.4
unixODBC-2.2.14
unixODBC-2.2.14 (32 bit)
unixODBC-devel-2.2.14

32-bit (x86) Installations

binutils-2.20.51.0.2
compat-libcap1-1.10
compat-libstdc++-33-3.2.3
elfutils-libelf-0.148
elfutils-libelf-devel-0.148
elfutils-libelf-devel-static-0.148
gcc-4.4.4
gcc-c++-4.4.4
glibc-2.12-1
glibc-common-2.12
glibc-devel-2.12
glibc-headers-2.12
kernel-headers-2.6.32
ksh-20100621
libaio-0.3.107
libaio-devel-0.3.107
libgcc-4.4.4
libgomp-4.4.4
libstdc++-4.4.4
libstdc++-devel-4.4.4
make-3.81
numactl-devel-2.0.3
sysstat-9.0.4
unixODBC-2.2.14
unixODBC-devel-2.2.14

Each of the packages listed above can be found on the Oracle Linux DVD

# From Oracle Linux 6 DVD

cd /media/cdrom/Server/Packages

rpm -Uvh binutils-2*i686*
rpm -Uvh compat-libcap1*i686*
rpm -Uvh compat-libstdc++-33*i686*
rpm -Uvh elfutils-libelf-0*i686*
rpm -Uvh elfutils-libelf-devel-0*i686*
rpm -Uvh gcc-4*i686*
rpm -Uvh gcc-c++-4*i686*
rpm -Uvh glibc-2*i686* nss-softokn-freebl-3*i686*
rpm -Uvh glibc-common-2*i686*
rpm -Uvh glibc-devel-2*i686*
rpm -Uvh glibc-headers-2*i686*
rpm -Uvh kernel-headers-2*i686*
rpm -Uvh ksh-*i686*
rpm -Uvh libaio-0*i686*
rpm -Uvh libaio-devel-0*i686*
rpm -Uvh libgcc-4*i686*
rpm -Uvh libgomp-4*i686*
rpm -Uvh libstdc++-4*i686*
rpm -Uvh libstdc++-devel-4*i686*
rpm -Uvh make-3*i686*
rpm -Uvh numactl-devel-2*i686*
rpm -Uvh sysstat-9*i686*
rpm -Uvh unixODBC-2*i686*
rpm -Uvh unixODBC-devel-2*i686*
cd /
eject

6) Kernel Parameters:

Edit the /etc/sysctl.conf and add the next kernel parameters:

fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586

Reboot the Linux box or enter the following command to apply the

changes for the kernel parameters:

# /sbin/sysctl -p

Then verify the new values:

# /sbin/sysctl -a

7) Shell Limits for the oracle User:

Add or edit the following line in the /etc/pam.d/login file:

session required pam_limits.so

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack  10240

8) Creating Operating System Groups and Users:

The following operating system groups and user are required if you are installing

Oracle Database:

The Oracle Inventory group (oinstall): You must have a group whose members are

given access to write to the Oracle Central Inventory (oraInventory).

The OSDBA group (dba): You must create this group the first time you install Oracle

Database software on the system. It identifies operating system user accounts that have

database administrative privileges (the SYSDBA privilege). The default name for this group

is dba.

Oracle Universal Installer prompts you to specify this group name. If software owner is a

member of the group dba, then Oracle Universal Installer defaults the OSDBA setting to dba.

However, you can also choose a different operating system group if required.

The OSOPER group (oper): This is an optional group. Create this group if you want a

separate group of operating system users to have a limited set of database administrative

privileges (the SYSOPER privilege). By default, members of the OSDBA group also have the

SYSOPER privilege.

The OSASM group (asmadmin): This feature introduces a new SYSASM privilege that is

specifically intended for performing Automatic Storage Management administration tasks.

Using the SYSASM privilege instead of the SYSDBA privilege provides a clearer division of

responsibility between Automatic Storage Management administration and database

administration. OSASM is a new operating system group that is used exclusively for

Automatic Storage Management. Members of the OSASM group can connect as SYSASM

using operating system authentication and have full access to Automatic Storage

Management. The usual name chosen for this group is asmadmin.

The Oracle software owner user (oracle):

You must create this user the first time you install Oracle software on the system. This user

owns all of the software installed during the installation. This user must have the Oracle

Inventory group as its primary group (oinstall). It must also have the OSDBA and OSOPER

groups as secondary groups.

Creating the Oracle Inventory Group

# /usr/sbin/groupadd oinstall

Creating the Oracle OSDBA Group

# /usr/sbin/groupadd dba

Creating the Oracle OSASM Group

# /usr/sbin/groupadd asmadmin

Creating the Oracle OSOPER Group

# /usr/sbin/groupadd oper

Creating the Oracle Database Software Owner

#/usr/sbin/useradd -g oinstall -G dba,oper,asmadmin oracle

Creating the Oracle ASM Software Owner

#/usr/sbin/useradd -g oinstall -G dba,oper,asmadmin osasm

Create a new password for the oracle account

# passwd oracle

Changing password for user oracle.

New password: xxxxxxxxxxx

Retype new password: xxxxxxxxxxx

passwd: all authentication tokens updated successfully.

9) Creating the Oracle Base Directory:

# mkdir -p /mount_point/app/oracle

# chown -R oracle:oinstall /mount_point/app/oracle

# chmod -R 775 /mount_point/app/oracle

10) Creating the Oracle ASM Home Directory:

#mkdir -p /u01/app/oracle/11.2/asm

#chown -R osasm:oinstall /u01/app/oracle/11.1/asm

#chmod -R 775 /u01/app/oracle/11.2/asm

11) Creating the Oracle Database Home Directory:

#mkdir -p /u01/app/oracle/11.2/db

#chown -R oracle:oinstall /u01/app/oracle/11.1/db

#chmod -R 775 /u01/app/oracle/11.2/db

12) Setting the environment variables for the ASM OS user:

export ORACLE_SID=+ASM

export ORACLE_HOME=/u01/app/oracle/11.2/asm

export ORACLE_BASE=/u01/app/oracle

export PATH=$ORACLE_HOME/bin:.:$PATH:$HOME/sh

13) Setting the environment variables for the DB OS user :

export ORACLE_SID=TEST

export ORACLE_HOME=/u01/app/oracle/11.2/db

export ORACLE_BASE=/u01/app/oracle

export PATH=$ORACLE_HOME/bin:.:$PATH:$HOME/sh

These parameters should be customized following your server environment and

put into file .profile in user's home directory.

14) Verify that the user nobody exists

# id nobody

 uid=99(nobody) gid=99(nobody) groups=99(nobody)

if the user nobody does not exist, create it

# /usr/sbin/useradd nobody

15) Atomatic Memory Management
Starting with Oracle Database 11g, the Automatic Memory Management
feature requires more shared memory (/dev/shm) and file descriptors.
The shared memory should be sized to be at least the greater of
MEMORY_MAX_TARGET and MEMORY_TARGET for each Oracle instance on the computer.
To determine the amount of shared memory available, enter the following command
# df -h /dev/shm/
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                 2.0G     0  2.0G   0% /dev/shm

16) Network configration
During the Linux OS install, we already configured the IP address and host name for
the database node. This sections contains additional network configuration steps that
will prepare the machine to run the Oracle database.Note that the Oracle database server
should have a static IP address configured for the public network.
Ensure that the node name is not included for the loopback address in the /etc/hosts file.
If the machine name is listed in the in the loopback,it will need to be removed.

127.0.0.1   localhost.localdomain localhost

17) Check to ensure that the firewall option is turned off.

# /etc/rc.d/init.d/iptables status
Firewall is stopped

If the firewall option is operating, you will need to first manually disable:

# /etc/rc.d/init.d/iptables stop
# chkconfig iptables off