In this section, we'll set up Linux so that you're in a position to get Oracle 8i from the CD that they sent you into your hard-disk.
The Oracle installation process begins when you've built your PC, installed Linux, configured it and connected it to your network.
I think that the most important part of the prerequisites is not to underestimate them and, as far as the software is concerned, not to differ unless you have to.
My sad tale is as follows:
Oracle seem to have done most of their development on RedHat Linux. For a fuss-free installation, do the same. I've heard horror stories about trying to get it installed on other distributions.
I used a fairly vanilla RH6 setup and had very few problems. I downloaded and installed the JRE version 1.1.6v5, added all the patches up to August 1999 and upgraded the kernel to 2.2.13, but that was in order to support my network card. I have no reason to suspect that Oracle won't work with the RedHat supplied 2.2.5 kernel.
Note, the Oracle installer seems to be hard-coded to expect the JRE
executable to be at /usr/local/jre/bin/jre
. While this
doesn't mean that you have to install it there (see below), it does
mean that you can't get away with using the JDK. This is an important
point so I'll repeat it: you must use the JRE, the Oracle installer
won't work with the JDK!
I performed the following steps to get a working copy of the JRE:
cd /usr/local
bzip2 -d -c jre-1.1.6-v5-glibc-x86.tar.bz2 | tar xvf -
ln -s jre116_v5 jre
As for the hardware, once you get above a certain 'base' level Oracle should work on almost any hardware you get get Linux running on. My system, for reference, is an Intel Celeron 466Mhz with 128Mb memory, an 8Gb hard-disk and a DM9102 network card. This is not a machine for heavy database applications, but is perfectly sufficient for a small test or development system.
As mentioned in the previous section, Oracle do their development using RedHat 6.0, so for a hassle-free installation this is what you should probably use.
But what options do you make and which of the vast number of packages need to be installed to make Oracle work?
Firstly you need two to three times the amount of memory you have for your swap space. (You'll need around 200Mb of memory, real or virtual, just to run the installer!) Note that contrary to popular opinion, Linux swap partitions can be larger than 128Mb.
The arrangements of your other partitions can also be important. Make sure that the Oracle software is on a different partition to your operating system, and make sure that the Oracle data-files are on yet another partition. The idea here is to make sure that your data-files do not get fragmented. (In a live environment, you're likely to have a number of disk with Oracle spread across them. There are a number of good books that you consult for more information on this.)
As for the software, I took the easy option and installed just about everything. You certainly need all the 'base' packages, X Windows (the installation routine is a Java GUI) and the development tools regardless of whether you intend doing any coding or not. Compared to the size of Oracle and your databases a Linux distribution is tiny, probably less than a gigabyte. It's worth installing it all for an easy life!
The documentation suggests that you make changes to the Linux kernel so you can get more shared memory. Since this is so difficult in Linux (unlike most commercial Unix's you have to recompile the kernel), the approach I took was to go ahead with the installation anyway. The default RedHat Linux settings worked, although you may have to change them for a larger development or production system.
Note that some people have had to recompile the kernel to get Oracle to work at all. I guess it must depend on the other software that you're running on the same machine.
Follow the instructions in the Oracle documentation (on the installation CD in HTML format) and the Linux Kernel HOWTO to build your new kernel.
Using LinuxConf (or whatever other method you feel comfortable with), you need to add a new group called "dba" and a new user called "oracle", which should belong to your newly created "dba" group.
You can make any other user a DBA by putting them in the DBA group. If you have several DBA's this is probably a good idea for auditing purposes.
I would recommend that you do use 128Mb of RAM or more. I think it would be difficult to get any serious work done with less.
However, if you disable the Java option and set all the shared memory settings to be relatively small, there's no reason why it shouldn't work. I've heard success stories with 64Mb. You're probably not going to get away with 32Mb, though.
There is a caveat. You may only need half of what Oracle recommends to run the thing, but to install it their number starts to make sense. I've heard reports of the installer using 150Mb of memory and I've seen it well over 120Mb myself. If you have 64Mb or less of memory, make sure you have lots of swap space and patience.
An alternative that should work is as follows (although I've not
had chance to test it): install Oracle on another, bigger machine and
copy across the $ORACLE_HOME
directory. If you have all the same
users and groups I can't see why if wouldn't work.
I'm still running 6.0 myself, so all I can say is that a number of people have claimed success with this configuration.
At the time of writing, Oracle 8i has been certified with RedHat 6.0 and "Certification for other distributions is currently in progress" (Oracle 8i Patch FAQ).
Oracle specify the Linux kernel version 2.2 or above and GLIBC version 2.1 with any window manager. In theory, any distribution that meets these requirements should work.
In practice, Oracle may not support it and you may have more problems trying to complete the installation. Unless you have a very good reason to do otherwise I suggest you stick to RedHat 6.0 with all the patches you can get hold of.
There's no obvious reason why it shouldn't work -- I used 2.3.19 for a while because it supported my network card and the stable kernel at the time didn't -- but unless there's a pressing need it's certainly safest to stay well clear. I switched back to the stable series as soon as the driver was included.