Oracle Database - Standard Edition - Version to [Release 11.2]
Oracle Database - Enterprise Edition - Version to [Release 11.2]
Linux x86-64

This note explains the requirements that need to be met for a successful installation of Oracle 11gR2 RDBMS release on Red Hat Enterprise Linux 7.0 (or higher 7.x version), 64-bit (x86-64). These guidelines apply to cluster (RAC) or standalone / single instances.

It is NOT the purpose of this NOTE to repeat every "how-to" step that is presented in the 11gR2 Installation Guide manual. For example this NOTE does not include how to create the Linux OS account named "oracle", nor does it cover how to set environment variables. Both are adequately covered in Chapter 2 "Oracle Database Pre-installation Requirements" of the 11gR2 Installation Guide manual.

You can download Oracle software from My Oracle Support (patch 13390677)

This procedure is meant for those planning/installing Oracle 11gR2 RDBMS release (or higher 11.2.0.x version) on Red Hat Enterprise Linux 7.0 (or higher 7.x version) on the 64-bit (x86-64) platform. Since it is the expressed goal to keep Oracle Linux (OL) functionally IDENTICAL to RHEL, this NOTE is also completely applicable to 64-bit (x86-64) OL 7.0 (or higher 7.x version).

This procedure is not meant for those planning/installing Grid Infrastructure (GI) or any other Oracle products.

Requirements for installing Oracle 11gR2 RDBMS release 64-bit on RHEL7 or OL7 64-bit (x86_64)

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


Swap Space

Between 1 GB and 2 GB

1.5 times the size of RAM

Between 2 GB and 16 GB

Equal to the size of RAM

More than 16 GB

16 GB

NOTE: The above recommendations (from the 11.2 Database installation guide) are MINIMUM recommendations for installations. Further RAM and swap space may be required to tune/improve RDBMS performance.

c.) 1.0 GB (1024MB) 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).

2. Oracle Database is supported on ext2, ext3, and ext4 file systems (see Note:236826.1 for further information)

II. Software:
1. As is specified in section 1.3.2 of the Oracle Database Installation Guide for 11gR2 on Linux (part number E24321-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" or Note 401167.1, "Defining a "default RPMs" installation of the Oracle Enterprise Linux (OEL) OS".

2. Red Hat Enterprise Linux Server 7.0 (or higher 7.x version) or Oracle Linux 7.0 (or higher 7.x version)

NOTE: RHEL7 servers must be running Red Hat kernel 3.10.0-54.0.1.el7 (x86_64) or higher or 3.8.13-33.el7uek (x86_64) or higher with UEK kernel. OL7 servers must also be running kernel 3.8.13-33.el7uek (x86_64) or higher version. The product RHEL does not deliver UEK Kernel. Only in OL 7 UEK and RHCK Kernel is included.

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 7.0. When a higher "update" level is used, the RPM release numbers (such as 4.4.4-13) may be slightly different. Since updates of RHEL 7 are certified, this is fine so long as you are still using 64-bit Linux (x86_64) RHEL 7 RPMs.
b.) Some of the Install Guide requirements will already be present from the "default-RPMs" foundation of Linux that you started with:


4. Additional Required OS Components (per the runInstaller OUI)
a.) intentionally blank

5. Additional Required OS Components (per this NOTE)
a.) 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 6. Additional RPMs (beyond anything known to Oracle) may be needed if a "less-than-default-RPMs" installation of 64-bit (x86_64) RHEL Server 6 is performed. For more information, please refer to Note 376183.1, "Defining a "default RPMs" installation of the RHEL OS" or Note 401167.1, "Defining a "default RPMs" installation of the Oracle Enterprise Linux (OEL) OS".
b.) Several RPMs will be required as prerequisites to those listed in section II.3.c:


6. Oracle Global Customer Support has noticed a recent trend with install problems that originates from installing too many RPMs. For example:
a.) installing your own JDK version (prior to execute 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.
b.) 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"

7. All of the RPMs in section II. are on the Red Hat Enterprise Linux 7 64-bit (x86_64) distribution media.

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.

kernel.shmall = physical RAM size / pagesize For most systems, this will be the value 2097152. See Note 301830.1 for more information.
kernel.shmmax = 1/2 of physical RAM. This would be the value 2147483648 for a system with 4GB of physical RAM. See Note:567506.1 for more information.
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 512 x processes (for example 6815744 for 13312 processes)
fs.aio-max-nr = 1048576
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 = 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:

a.) Add the following settings to /etc/security/limits.conf

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

b.) Verify the latest version of PAM is loaded, then add or edit the following line in the /etc/pam.d/login file, if it does not already exist:

session required

c.) Verify the current ulimits, and raise if needed. This can be done many ways...adding the following lines to /etc/profile is the recommended method:

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -u 16384
ulimit -n 65536
ulimit -u 16384 -n 65536

4. The gcc-4.4.4 and gcc-c++-4.4.4 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.8.2".

5. The hostname command should return the fully qualified hostname as shown below:

% hostname

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 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.
a.) Setting $ORACLE_BASE (not $ORACLE_HOME) is recommended, since it eases a few prompts in the OUI runInstaller tool.
b.) Following the successful 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 7 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 cannot restore segment prot after reloc" for more details.

UPDATE: Internal testing suggests that there is no problem running "sqlplus" with SELinux in "enforcing" mode on RHEL7/OL7. The problem only affects RHEL5/OL5.

9. Log in as Oracle user and start the installation as follows:

$ ./runInstaller -ignorePrereq

a.) It is best practice not to use any form of "su" to start the runInstaller, in order to avoid potential display-related problems.
b.) When performing the installation, make sure to use the "runInstaller" version that comes with software.
c.) When performing any subsequent 11.2.0.x patchset, make sure to use the "runInstaller" version that comes with the patchset.

Known Issue :

01) The installer needs to be launched with "-ignorePrereq" option due to unpublished bug 19947777. This issue occurs since Oracle Linux 7 was not released when Oracle database was made available and hence was not certified. However, Oracle is now certified on OL7. Refer Note 1962046.1 for details.

02) Compilation fails for target 'relink_exe' fails with "undefined reference to symbol