Prepare your Linux Server to install Oracle database using oracle-validated RPM

Preparing a Linux server to install oracle has been made easy with the help of oracle-validated rpm package. Install of oracle-validated automates the download and install of all required RPMs including dependencies, setup of Linux kernel parameters, creation of oracle user (Linux user) and dba, oinstall groups

I have been thinking of trying out oracle-validated for a while – Today, I downloaded the RPM from http://oss.oracle.com/el5/oracle-validated/ and performed a test install on CentOS Linux 5.2 server.

  • Releases prior to oracle-validated-1.0.0-18.el5.i386.rpm had a dependency check on enterprise-release.
$ grep "enterprise-release" oracle-validated.spec
      - Removed enterprise-release package dependency and added /etc/redhat-release file dependency to support RHEL
      - Added enterprise-release dependency to fix el4/5 cross install issue
  • Download oracle-validated RPM
[root@dblx132 ~]# cd /tmp
[root@dblx132 tmp]# wget http://oss.oracle.com/el5/oracle-validated/oracle-validated-1.0.0-18.el5.i386.rpm
--23:33:44--  http://oss.oracle.com/el5/oracle-validated/oracle-validated-1.0.0-18.el5.i386.rpm
..............
23:33:44 (130 KB/s) - `oracle-validated-1.0.0-18.el5.i386.rpm' saved [14889/14889]

If you do not import the RPM GPG key supplied by Oracle then your RPM install will terminate with an error.

rpm --import http://oss.oracle.com/el5/RPM-GPG-KEY-oracle
  • Install oracle-validated RPM
[root@dblx132 tmp]# yum install ./oracle-validated-1.0.0-18.el5.i386.rpm
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile
 * base: www.cyberuse.com
 * updates: www.cyberuse.com
 * addons: pubmirrors.reflected.net
 * extras: mirrors.unbornmedia.com
Setting up Install Process
Parsing package install arguments
Examining ./oracle-validated-1.0.0-18.el5.i386.rpm: oracle-validated - 1.0.0-18.el5.i386
Marking ./oracle-validated-1.0.0-18.el5.i386.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package oracle-validated.i386 0:1.0.0-18.el5 set to be updated
--> Processing Dependency: compat-db for package: oracle-validated
--> Processing Dependency: compat-gcc-34 for package: oracle-validated
--> Processing Dependency: compat-gcc-34-c++ for package: oracle-validated
--> Processing Dependency: compat-libstdc++-33 for package: oracle-validated
--> Processing Dependency: elfutils-libelf-devel for package: oracle-validated
--> Processing Dependency: gcc for package: oracle-validated
--> Processing Dependency: gcc-c++ for package: oracle-validated
--> Processing Dependency: gdb for package: oracle-validated
--> Processing Dependency: glibc-devel for package: oracle-validated
--> Processing Dependency: glibc-headers for package: oracle-validated
--> Processing Dependency: kernel-headers for package: oracle-validated
--> Processing Dependency: libXp for package: oracle-validated
--> Processing Dependency: libaio-devel for package: oracle-validated
--> Processing Dependency: libstdc++-devel for package: oracle-validated
--> Processing Dependency: sysstat for package: oracle-validated
--> Processing Dependency: unixODBC for package: oracle-validated
--> Processing Dependency: unixODBC-devel for package: oracle-validated
--> Running transaction check
---> Package libaio-devel.i386 0:0.3.106-3.2 set to be updated
---> Package unixODBC-devel.i386 0:2.2.11-7.1 set to be updated
---> Package gdb.i386 0:6.8-27.el5 set to be updated
---> Package libstdc++-devel.i386 0:4.1.2-44.el5 set to be updated
--> Processing Dependency: libstdc++ = 4.1.2-44.el5 for package: libstdc++-devel
---> Package glibc-devel.i386 0:2.5-34 set to be updated
--> Processing Dependency: glibc = 2.5-34 for package: glibc-devel
---> Package glibc-headers.i386 0:2.5-34 set to be updated
---> Package gcc-c++.i386 0:4.1.2-44.el5 set to be updated
---> Package kernel-headers.i386 0:2.6.18-128.1.10.el5 set to be updated
---> Package elfutils-libelf-devel.i386 0:0.137-3.el5 set to be updated
--> Processing Dependency: elfutils-libelf-devel-static-i386 = 0.137-3.el5 for package: elfutils-libelf-devel
--> Processing Dependency: elfutils-libelf-i386 = 0.137-3.el5 for package: elfutils-libelf-devel
---> Package compat-gcc-34.i386 0:3.4.6-4 set to be updated
---> Package compat-gcc-34-c++.i386 0:3.4.6-4 set to be updated
---> Package compat-libstdc++-33.i386 0:3.2.3-61 set to be updated
---> Package compat-db.i386 0:4.2.52-5.1 set to be updated
---> Package gcc.i386 0:4.1.2-44.el5 set to be updated
--> Processing Dependency: libgomp >= 4.1.2-44.el5 for package: gcc
--> Processing Dependency: libgcc >= 4.1.2-44.el5 for package: gcc
--> Processing Dependency: cpp = 4.1.2-44.el5 for package: gcc
---> Package libXp.i386 0:1.0.0-8.1.el5 set to be updated
---> Package sysstat.i386 0:7.0.2-3.el5 set to be updated
---> Package unixODBC.i386 0:2.2.11-7.1 set to be updated
--> Running transaction check
---> Package cpp.i386 0:4.1.2-44.el5 set to be updated
---> Package libgcc.i386 0:4.1.2-44.el5 set to be updated
---> Package elfutils-libelf-devel-static.i386 0:0.137-3.el5 set to be updated
---> Package glibc.i686 0:2.5-34 set to be updated
--> Processing Dependency: glibc-common = 2.5-34 for package: glibc
---> Package elfutils-libelf.i386 0:0.137-3.el5 set to be updated
---> Package libgomp.i386 0:4.3.2-7.el5 set to be updated
---> Package libstdc++.i386 0:4.1.2-44.el5 set to be updated
--> Running transaction check
---> Package glibc-common.i386 0:2.5-34 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 oracle-validated        i386       1.0.0-18.el5     ./oracle-validated-1.0.0-18.el5.i386.rpm   41 k
Updating:
 cpp                     i386       4.1.2-44.el5     base              2.7 M
 elfutils-libelf         i386       0.137-3.el5      base               58 k
 glibc                   i686       2.5-34           base              5.2 M
 glibc-common            i386       2.5-34           base               16 M
 libgcc                  i386       4.1.2-44.el5     base               94 k
 libstdc++               i386       4.1.2-44.el5     base              363 k
Installing for dependencies:
 compat-db               i386       4.2.52-5.1       base              1.7 M
 compat-gcc-34           i386       3.4.6-4          base              4.1 M
 compat-gcc-34-c++       i386       3.4.6-4          base               11 M
 compat-libstdc++-33     i386       3.2.3-61         base              232 k
 elfutils-libelf-devel   i386       0.137-3.el5      base               24 k
 elfutils-libelf-devel-static  i386       0.137-3.el5      base               66 k
 gcc                     i386       4.1.2-44.el5     base              5.2 M
 gcc-c++                 i386       4.1.2-44.el5     base              3.4 M
 gdb                     i386       6.8-27.el5       base              3.3 M
 glibc-devel             i386       2.5-34           base              2.0 M
 glibc-headers           i386       2.5-34           base              598 k
 kernel-headers          i386       2.6.18-128.1.10.el5  updates           917 k
 libXp                   i386       1.0.0-8.1.el5    base               23 k
 libaio-devel            i386       0.3.106-3.2      base               11 k
 libgomp                 i386       4.3.2-7.el5      base               67 k
 libstdc++-devel         i386       4.1.2-44.el5     base              2.9 M
 sysstat                 i386       7.0.2-3.el5      base              169 k
 unixODBC                i386       2.2.11-7.1       base              832 k
 unixODBC-devel          i386       2.2.11-7.1       base              739 k

Transaction Summary
=============================================================================
Install     20 Package(s)
Update       6 Package(s)
Remove       0 Package(s)         

Total download size: 62 M
Is this ok [y/N]: y
Downloading Packages:
(1/25): libXp-1.0.0-8.1.e 100% |=========================|  23 kB    00:00
(2/25): gcc-4.1.2-44.el5. 100% |=========================| 5.2 MB    00:16
(3/25): libstdc++-4.1.2-4 100% |=========================| 363 kB    00:01
(4/25): libaio-devel-0.3. 100% |=========================|  11 kB    00:00
(5/25): gcc-c++-4.1.2-44. 100% |=========================| 3.4 MB    00:09
(6/25): kernel-headers-2. 100% |=========================| 917 kB    00:02
(7/25): unixODBC-2.2.11-7 100% |=========================| 832 kB    00:02
(8/25): compat-db-4.2.52- 100% |=========================| 1.7 MB    00:05
(9/25): compat-libstdc++- 100% |=========================| 232 kB    00:00
(10/25): elfutils-libelf- 100% |=========================|  24 kB    00:00
(11/25): libgomp-4.3.2-7. 100% |=========================|  67 kB    00:00
(12/25): glibc-devel-2.5- 100% |=========================| 2.0 MB    00:06
(13/25): unixODBC-devel-2 100% |=========================| 739 kB    00:02
(14/25): elfutils-libelf- 100% |=========================|  58 kB    00:00
(15/25): gdb-6.8-27.el5.i 100% |=========================| 3.3 MB    00:10
(16/25): compat-gcc-34-3. 100% |=========================| 4.1 MB    00:13
(17/25): glibc-2.5-34.i68 100% |=========================| 5.2 MB    00:18
(18/25): sysstat-7.0.2-3. 100% |=========================| 169 kB    00:00
(19/25): elfutils-libelf- 100% |=========================|  66 kB    00:00
(20/25): libstdc++-devel- 100% |=========================| 2.9 MB    00:09
(21/25): libgcc-4.1.2-44. 100% |=========================|  94 kB    00:00
(22/25): glibc-common-2.5 100% |=========================|  16 MB    00:51
(23/25): compat-gcc-34-c+ 100% |=========================|  11 MB    00:39
(24/25): cpp-4.1.2-44.el5 100% |=========================| 2.7 MB    00:10
(25/25): glibc-headers-2. 100% |=========================| 598 kB    00:01
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating  : libgcc                       ####################### [ 1/32]
  Updating  : glibc-common                 ####################### [ 2/32]
  Updating  : glibc                        ####################### [ 3/32]
  Updating  : libstdc++                    ####################### [ 4/32]
  Installing: libstdc++-devel              ####################### [ 5/32]
  Updating  : elfutils-libelf              ####################### [ 6/32]
  Installing: unixODBC                     ####################### [ 7/32]
  Installing: kernel-headers               ####################### [ 8/32]
  Installing: glibc-headers                ####################### [ 9/32]
  Installing: glibc-devel                  ####################### [10/32]
  Installing: compat-gcc-34                ####################### [11/32]
  Installing: compat-gcc-34-c++            ####################### [12/32]
  Installing: unixODBC-devel               ####################### [13/32]
  Installing: compat-db                    ####################### [14/32]
  Updating  : cpp                          ####################### [15/32]
  Installing: sysstat                      ####################### [16/32]
  Installing: gdb                          ####################### [17/32]
  Installing: libgomp                      ####################### [18/32]
  Installing: gcc                          ####################### [19/32]
  Installing: gcc-c++                      ####################### [20/32]
  Installing: compat-libstdc++-33          ####################### [21/32]
  Installing: libXp                        ####################### [22/32]
  Installing: libaio-devel                 ####################### [23/32]
  Installing: elfutils-libelf-devel        ####################### [24/32]
  Installing: elfutils-libelf-devel-static ####################### [25/32]
  Installing: oracle-validated             ####################### [26/32]
  Cleanup   : cpp                          ####################### [27/32]
  Cleanup   : glibc-common                 ####################### [28/32]
  Cleanup   : libgcc                       ####################### [29/32]
  Cleanup   : glibc                        ####################### [30/32]
  Cleanup   : elfutils-libelf              ####################### [31/32]
  Cleanup   : libstdc++                    ####################### [32/32] 

Installed: oracle-validated.i386 0:1.0.0-18.el5
Dependency Installed: compat-db.i386 0:4.2.52-5.1 compat-gcc-34.i386 0:3.4.6-4 compat-gcc-34-c++.i386 0:3.4.6-4 compat-libstdc++-33.i386 0:3.2.3-61 elfutils-libelf-devel.i386 0:0.137-3.el5 elfutils-libelf-devel-static.i386 0:0.137-3.el5 gcc.i386 0:4.1.2-44.el5 gcc-c++.i386 0:4.1.2-44.el5 gdb.i386 0:6.8-27.el5 glibc-devel.i386 0:2.5-34 glibc-headers.i386 0:2.5-34 kernel-headers.i386 0:2.6.18-128.1.10.el5 libXp.i386 0:1.0.0-8.1.el5 libaio-devel.i386 0:0.3.106-3.2 libgomp.i386 0:4.3.2-7.el5 libstdc++-devel.i386 0:4.1.2-44.el5 sysstat.i386 0:7.0.2-3.el5 unixODBC.i386 0:2.2.11-7.1 unixODBC-devel.i386 0:2.2.11-7.1
Updated: cpp.i386 0:4.1.2-44.el5 elfutils-libelf.i386 0:0.137-3.el5 glibc.i686 0:2.5-34 glibc-common.i386 0:2.5-34 libgcc.i386 0:4.1.2-44.el5 libstdc++.i386 0:4.1.2-44.el5
Complete!

The validated install automatically makes a copy of sysctl.conf to /etc/sysctl.conf.orabackup before making any changes. As you see below, Linux Kernel Parameters have been added to sysctl.conf. Lines starting with < symbol denotes that it has been added or updated.

[root@dblx132 tmp]# ls -l /etc/sysctl.conf*
-rw-r--r-- 1 root root 1462 May 12 23:57 /etc/sysctl.conf
-rw-r--r-- 1 root root  994 May 12 23:57 /etc/sysctl.conf.orabackup
[root@dblx132 tmp]# diff /etc/sysctl.conf /etc/sysctl.conf.orabackup
16c16
< kernel.sysrq = 1 --- > kernel.sysrq = 0
29c29
< kernel.msgmax = 8192 --- > kernel.msgmax = 65536
35,48c35
< kernel.shmall = 1073741824
< fs.file-max = 327679
< kernel.msgmni = 2878
< kernel.sem = 250 32000 100 142
< kernel.shmmni = 4096
< net.core.rmem_default = 262144
< # For 11g recommended value for net.core.rmem_max is 4194304
< net.core.rmem_max = 4194304
< # For 10g uncomment the following line, comment other entries for this parameter and re-run sysctl -p
< # net.core.rmem_max=2097152
< net.core.wmem_default = 262144
< net.core.wmem_max = 262144
< fs.aio-max-nr = 3145728
< net.ipv4.ip_local_port_range = 1024 65000 --- > kernel.shmall = 268435456
[root@dblx132 tmp]#

Also, it updated shell limits and openfile descriptors – A back up copy of /etc/security/limits.conf was created before making changes

[rperumal@dblx132 ~]$ ls -l /etc/security/limits.conf*
-rw-r--r-- 1 root root 2151 May 12 23:57 /etc/security/limits.conf
-rw-r--r-- 1 root root 1789 May 12 23:57 /etc/security/limits.conf.orabackup
[rperumal@dblx132 ~]$ diff /etc/security/limits.conf /etc/security/limits.conf.orabackup
44,53d43
< oracle   soft   nofile    131072
< oracle   hard   nofile    131072
< oracle   soft   nproc    131072
< oracle   hard   nproc    131072
< oracle   soft   core    unlimited
< oracle   hard   core    unlimited
< oracle   soft   memlock    3500000
< oracle   hard   memlock    3500000
< # Recommended stack hard limit 32MB for oracle installations
< # oracle   hard   stack    32768
[rperumal@dblx132 ~]$

Additionally, it has added oracle user /etc/passwd file and dba, oinstall groups in /etc/group file.

[rperumal@dblx132 ~]$ grep oracle /etc/passwd | cut -d':' -f1
oracle
[rperumal@dblx132 ~]$ grep -e dba -e oinstall /etc/group | cut -d':' -f1
dba
oinstall

This package helps you prepare the Linux Server to install Oracle database and Grid Control.

Addenda

4/26/2010: This post has been translated to French by Khatib Mechentel, you can find it here.

Leave a Comment

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

Time limit is exhausted. Please reload the CAPTCHA.