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.