From searching the web, it’s apparent that even installing Oracle on Linux can be a challenge for many people. Sure, there’s OFA (Oracle Flexible Architecture), best practices, mount points, file system types and all the lot. You can always find a way to make things a little bit better or more complex.
I want to start off with something a little more basic. I want to talk about the basic Oracle install.
The general steps are to create a software owner (such as the user oracle) and a owner group (dba is pretty common) and, in the case of 11g, possibly things like ASM owner groups. Then you’ve got the actual runInstaller where you choose the disk locations, software components, etc. Part of what the Oracle installer does is to verify your system requirements:
- are you on a supported OS?
- do you have the required software packages (rpms)?
- do you have enough swap?
- do you have shared memory correctly configured?
Oracle has made things easier with configuring all this stuff over the years, but there’s always room for improvement.
To help verify you have all the requisite software packages, Oracle publishes a special rpm called oracle-validated . This RPM will verify you have all the pre-requisite RPMs you need to install Oracle and will set the shared memory configured correctly. You can find the latest versions of this rpm at
- Redhat (RHEL), Centos, Oracle (OEL) Linux 4 at http://oss.oracle.com/el4/oracle-validated/
- Redhat (RHEL), Centos, Oracle (OEL) Linux 5 at http://oss.oracle.com/el5/oracle-validated/
(Note that in the case of RHEL 4, you need to use rpm -ivh filename.rpm instead of yum install filename.rpm like shown below)
Just choose the version you need and you can download and install it from the command line.
wget http://oss.oracle.com/el5/oracle-validated/oracle-validated-1.0.0-18.el5.x86_64.rpm
yum install oracle-validated-1.0.0-18.el5.x86_64.rpm
These days pretty much all new installs of Oracle for enterprise use are being done with Oracle 11gR2 (11.2.0.1) on RHEL 5 (5.4) 64-bit. Which would be the RPM I’ve listed above. The thing is, if you check, that RPM came out in March of 2009. It’s now been a year. The RPM works great for 11gR1 (11.1.0.6 / 11.1.0.7) installations but misses some things needed for 11gR2. 11gR2 was released in October of 2009. I’ve asked in the support forums and have been told Oracle is still working on an updated version for 11gR2, Oracle’s flagship product. To me it seems you’d get the helper rpm released around the same time as the database to help speed adoption and reduce support calls, but whatever. Heck, why not even provide the rpm with the Oracle database software itself? Maybe it has to do with the GPL and distributing software. Who knows.
Now, in the dark days before OEL or RHEL 5, any rpms that were missing needed to be installed by hand. With OEL/RHEL5, you now have yum which will automatically analyze and offer to install any necessary dependencies. If you utilize a subscription such as Oracle’s ULN (Unbreakable Linux Network) or RHN (Redhat Network) you can grab all these RPMs as needed right from the source and get the latest version. If you don’t have a subscription, or due to security you can’t allow the database server to get to the internet, you can create your own local repository. I’ll cover setting up a local repository in another post.
So at this point you’ve gotten oracle-validated rpm installed and hence all your RPM pre-reqs installed. What about your shared memory (shmmax, etc) parameters configured? Oracle makes this easy too. Once you have the rpm installed, issue the following as root:
cd /etc/sysconfig/oracle-validated
./oracle-validated-verify
This goes out and makes many of the changes necessary for Oracle to run. You can review what was run and changed by issuing:
more /var/log/oracle-validated/results/orakernel.log
Unfortunately, there are a few more parameters you’ll need to add that the rpm misses or gets wrong due to changing best practices from Oracle.
vi /etc/sysctl.conf
change net.core.rmem_default = 262144 to
net.core.rmem_default = 4194304
sysctl -p
vi /etc/pam.d/login
add if missing
session required /lib/security/pam_limits.so
session required pam_limits.so
At this point you’re ready to start the Oracle software installer and you should be good to go.
To summarize, for a vanilla RHEL 5 box to install 11gR1, here’s the steps you need to perform after installing the OS:
useradd oracle
groupadd dba
usermod -G dba oracle
cd /tmp
wget http://oss.oracle.com/el5/oracle-validated/oracle-validated-1.0.0-18.el5.x86_64.rpm
yum install oracle-validated-1.0.0-18.el5.x86_64.rpm –nogpgcheck
cd /etc/sysconfig/oracle-validated
./oracle-validated-verify
more /var/log/oracle-validated/results/orakernel.log
more orakernel.log
vi /etc/sysctl.conf
change net.core.rmem_default = 262144 to
net.core.rmem_default = 4194304
sysctl -p
vi /etc/pam.d/login
add if missing
session required /lib/security/pam_limits.so
session required pam_limits.so
Have fun!