Requirements for Installing Oracle 11gR2 RDBMS on RHEL Quick Review

This procedure is meant for those planning/trying to install Oracle Server 11.2.0.1.0 (or above) on Red Hat Server 5.2 (or greater) on the 64-bit (x86-64) platform. Since it is the expressed goal to keep Oracle Enterprise Linux functionally IDENTICAL to RHEL, this NOTE is also completely applicable to 64-bit (x86-64) OEL 5.2 or greater.

Requirements for Installing 64-bit Oracle 11gR2 RDBMS on RHEL or OEL 5.2 (or greater) 64-bit (x86_64)

I. Hardware:

1. Minimum Hardware Requirements
a.) At least 1.0 Gb (1024 MB) of physical RAM
b.) Swap disk space proportional to the system’s physical memory as follows:

RAM                                 Swap Space
1024 Mb to 2048 Mb        1.5 x RAM
2049 Mb to 16 Gb             1 x RAM
greater than 16 Gb              16 Gb

c.) 1024 Mb of disk space (and less than 2Tb of disk space) in the /tmp directory.
d.) approximately 4.4 Gb of local disk space for the database software.
e.) approximately 1.7 Gb of disk space for a preconfigured database that uses file system storage (optional)

II. Software:

1. As is specified in section 1.3.2 of the Oracle Database Installation Guide for 11gR2 on Linux (part number E10840-02), Oracle recommends that you install the Linux operating system with the default software packages (RPMs) and do not customize the RPMs during installation. For additional information on “default-RPMs”, please see Note 376183.1, “Defining a “default RPMs” installation of the RHEL OS”

2. Red Hat Enterprise Linux Server 5.2 (or greater), which is Kernel 2.6.18-92 or newer.

3. Required OS Components (per Release Notes, and Install Guide)

a.) The exact version number details of this list are based upon 64-bit (x86_64) RHEL Server 5.2 (aka “update 2”). When a higher “update” level is used, the RPM release numbers (such as 4.1.2-44) may be slightly different (such as 4.1.2-57 or 4.1.3-10). Since “update 2” and greater of RHEL 5 are certified, this is fine so long as you are still using 64-bit Linux (x86_64) RHEL Server 5 RPMs.

b.) Some of the Install Guide requirements will already be present from the “default-RPMs” foundation of Linux that you started with:

  1. binutils-2.17.50.0.6-6.el5 (x86_64)
  2. compat-libstdc++-33-3.2.3-61 (x86_64) <<< both ARCH’s are required. See next line.
  3. compat-libstdc++-33-3.2.3-61 (i386) <<< both ARCH’s are required. See previous line.
  4. elfutils-libelf-0.125-3.el5 (x86_64)
  5. glibc-2.5-24 (x86_64) <<< both ARCH’s are required. See next line.
  6. glibc-2.5-24 (i686) <<< both ARCH’s are required. See previous line.
  7. glibc-common-2.5-24 (x86_64)
  8. ksh-20060214-1.7 (x86_64)
  9. libaio-0.3.106-3.2 (x86_64) <<< both ARCH’s are required. See next line.
  10. libaio-0.3.106-3.2 (i386) <<< both ARCH’s are required. See previous line.
  11. libgcc-4.1.2-42.el5 (i386) <<< both ARCH’s are required. See next line.
  12. libgcc-4.1.2-42.el5 (x86_64) <<< both ARCH’s are required. See previous line.
  13. libstdc++-4.1.2-42.el5 (x86_64) <<< both ARCH’s are required. See next line.
  14. libstdc++-4.1.2-42.el5 (i386) <<< both ARCH’s are required. See previous line.
  15. make-3.81-3.el5 (x86_64)

c.) The remaining Install Guide requirements will have to be installed:

  1. elfutils-libelf-devel-0.125-3.el5.x86_64.rpm
    1. requires elfutils-libelf-devel-static-0.125-3.el5.x86_64.rpm as a prerequisite, as listed below.
    2. elfutils-libelf-devel and elfutils-libelf-devel-static each depend upon the other. Therefore, they must be installed together, in one (1) “rpm -ivh” command as follows: rpm -ivh elfutils-libelf-devel-0.125-3.el5.x86_64.rpm elfutils-libelf-devel-static-0.125-3.el5.x86_64.rpm
  2. glibc-headers-2.5-24.x86_64.rpm
    1. requires kernel-headers-2.6.18-92.el5.x86_64.rpm as a prerequisite, as listed below
  3. glibc-devel-2.5-24.x86_64.rpm <<< both ARCH’s are required. See next item.
  4. glibc-devel-2.5-24.i386.rpm <<< both ARCH’s are required. See previous item.
  5. gcc-4.1.2-42.el5.x86_64.rpm
    1. Requires libgomp-4.1.2-42.el5.x86_64.rpm as a prerequisite, as listed below
  6. libstdc++-devel-4.1.2-42.el5.x86_64.rpm
  7. gcc-c++-4.1.2-42.el5.x86_64.rpm
  8. libaio-devel-0.3.106-3.2.x86_64.rpm <<< both ARCH’s are required. See next item
  9. libaio-devel-0.3.106-3.2.i386.rpm <<< both ARCH’s are required. See previous item.
  10. sysstat-7.0.2-1.el5.x86_64.rpm
  11. unixODBC-2.2.11-7.1.x86_64.rpm <<< both ARCH’s are required. See next item
  12. unixODBC-2.2.11-7.1.i386.rpm <<< both ARCH’s are required. See previous item.
  13. unixODBC-devel-2.2.11-7.1.x86_64.rpm <<< both ARCH’s are required. See next item
  14. unixODBC-devel-2.2.11-7.1.i386.rpm <<< both ARCH’s are required. See previous item.

3. Additional Required OS Components

  1. Please do not rush, skip, or minimize this critical step. This list is based upon a “default-RPMs” installation of 64-bit (x86_64) RHEL Server 5. Additional RPMs (beyond anything known to Oracle) may be needed if a “less-than-default-RPMs” installation of 64-bit (x86_64) RHEL Server 5 is performed. For more information, please refer to Note 376183.1, “Defining a “default RPMs” installation of the RHEL OS”
  2. Several RPMs will be required as prerequisites to those listed in section II.3.c:
    1. elfutils-libelf-devel-static-0.125-3.el5.x86_64.rpm
    2. kernel-headers-2.6.18-92.el5.x86_64.rpm
  3. libgomp-4.1.2-42.el5.x86_64.rpm
  4. Oracle Global Customer Support has noticed a recent trend with install problems that originates from installing too many RPMs. For example:
    1. Installing your own JDK version (prior to beginning the Oracle Software “runInstaller”) is not needed on Linux, and is not recommended on Linux. A pre-existing JDK often interferes with the correct JDK that the Linux Oracle Software “runInstaller” will place and use.
    2. Installing more than the required version of the gcc / g++ RPMs often leads to accidentally using (aka enabling or activating) the incorrect one. If you have multiple RDBMS versions installed on the same Linux machine, then you will likely have to manage multiple versions of gcc /g++ . For more information, please see Note 444084.1, “Multiple gcc / g++ Versions in Linux”

4. All of the RPMs in section II. are on the Red Hat Enterprise Linux 5 64-bit (x86_64) distribution media which is shipped to you

III. Environment:

  1. Modify your kernel settings in /etc/sysctl.conf (RedHat) as follows. If the current value for any parameter is higher than the value listed in this table, do not change the value of that parameter. Range values (such as net.ipv4.ip_local_port_range) must match exactly.
    1. kernel.shmall = physical RAM size / pagesize For most systems, this will be the value 2097152. See Note 301830.1 for more information.
    2. kernel.shmmax = 1/2 of physical RAM. This would be the value 2147483648 for a system with 4Gb of physical RAM.
    3. kernel.shmmni = 4096
    4. kernel.sem = 250 32000 100 128
    5. fs.file-max = 512 x processes (for example 6815744 for 13312 processes)
    6. fs.aio-max-nr = 1048576
    7. net.ipv4.ip_local_port_range = 9000 65500
    8. net.core.rmem_default = 262144
    9. net.core.rmem_max = 4194304
    10. net.core.wmem_default = 262144
    11. net.core.wmem_max = 1048576
  2. To activate these new settings into the running kernel space, run the “sysctl –p” command as root.
  3. Set Shell Limits for the oracle User. Assuming that the “oracle” Unix user will perform the installation, do the following:
    1. Add the following settings to /etc/security/limits.conf
      1. oracle soft nproc 2047
      2. oracle hard nproc 16384
      3. oracle soft nofile 1024
      4. oracle hard nofile 65536
    2. Add or edit the following line in the /etc/pam.d/login file, if it does not already exist:
      1. session required pam_limits.so
    3. Add the following lines to /etc/profile:

    if [ $USER = “oracle” ]; then
    if [ $SHELL = “/bin/ksh” ]; then
    ulimit -u 16384
    ulimit -n 65536
    else
    ulimit -u 16384 -n 65536
    fi
    fi

  4. The gcc-4.1.2 and gcc-c++-4.1.2 RPM items above will ensure that the correct gcc / g++ versions are installed. It is also required that you ensure that these correct gcc / g++ versions are active, and in-use. Ensure that the commands “gcc –version” and “g++ –version” each return “4.1.x”.
  5. The hostname command should return the fully qualified hostname as : % hostname : hostname.domainname
  6. If any Java packages are installed on the system, unset the Java environment variables, for example JAVA_HOME.
  7. The oracle account that is used to install Oracle 11.2.0.1, should not have the Oracle install related variables set by default. For example setting ORACLE_HOME, PATH, LD_LIBRARY_PATH to include Oracle binaries in .profile, .login file and /etc/profile.d should be completely avoided.
    1. a.) Setting $ORACLE_BASE (not $ORACLE_HOME) is recommended, since it eases a few prompts in the OUI runInstaller tool.
    2. b.) following the succesful install, it is recommended to set $ORACLE_HOME, and to set $PATH to include $ORACLE_HOME/bin at the beginning of the $PATH string.
  8. By default, RHEL 5 x86_64 Linux is installed with SELinux as “enforcing”. This is fine for the 11gR2 installation process. However, to subsequently run “sqlplus”, switch SELinux to the “Permissive” mode. See NOTE 454196.1, “./sqlplus: error on libnnz11.so: cannot restore segment prot after reloc” for more details.
  9. Log in as Oracle user and start the installation as follows:
  10. ./runInstaller
    1. It is best practice not to use any form of “su” to start the runInstaller, in order to avoid potential display-related problems.
    2. When performing the 11.2.0.1 installation, make sure to use the “runInstaller” version that comes with 11.2.0.1 software.
    3. When performing any subsequent 11.2.0.x patchset, make sure to use the “runInstaller” version that comes with the patchset.

Leave a Comment