I think that the most important part of the prerequisites is not to
underestimate them. Oracle is a very big and complex application and
you won't get the best out of it if you skimp too much on the
hardware.
My biggest mistake was to assume that Oracle were joking when they
said that you need 128Mb of RAM. I've installed Oracle a couple of
times on Sun servers with that much, why would I need more on a CISC
machine?
Believe Oracle not my gut. My machine with 32Mb of Ram ground on for
less than half an hour before I realised that it was hopeless.
I was trying to use the bare minimum of hardware, and that's generally
a bad idea. If you can't afford the hardware you certainly won't be
able to afford the licences!
Things to look for on a production server are many disks, possibly
RAIDed, and fast CPU's. Database access is relatively easy to break
down into smaller parallel phases so having a number of processors
really does help.
On the other hand, any machine that can run Linux and that has enough
memory should be in with a chance. My other machine, the one I used
for the rest of this document, is fine as a development machine. It is
a Celeron 466Mhz with 128Mb of memory, an 8Gb hard disk, an Intel
graphics card and a DM9102 network card.
Oracle seem to have done most of their development on RedHat Linux
6.0. For a fuss-free installation, do the same. I've heard horror
stories about trying to get it installed on other distributions.
However, anything like RedHat should also do the trick. A recent
version of Mandrake or SuSE should be fine (SuSE, in fact, are fairly
active in supporting Oracle), and newer versions of RH pose no
problems either.
Distribution Setup
Now that you've decided on which RedHat-like distribution you're going
to use, you'll need to work out which options to set 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 datafiles are on yet
another partition. The idea here is to make sure that your datafiles
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!
Kernel parameters
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.
Users and groups
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.
Installing the right Java Virtual Machine
If you check the official documentation, you'll find that Oracle
recommend the Blackdown Java Runtime Environment version 1.1.6v5.
That's what they mean. Don't think 'newer versions will be less buggy'
as the installer probably won't work. And don't think, 'I'll be
developing software so I'll just get the JDK,' as that won't work
either.
There is one caveat to using this version of the JRE: the Oracle
installer seems to be hard-coded to expect the JRE executable to be at
/usr/local/jre/bin/jre. While this is inconvenient, it does
not mean that you have to install it there.
I performed the following steps to get a working copy of the JRE:
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 if you absolutely can't add more memory: install Oracle
on another, bigger machine and copy across the $ORACLE_HOME
directory. You'll need to make sure that you have all the same users
and groups (preferably with the same numeric codes) and take special
care with SUID executables like $ORACLE_HOME/bin/oracle/.
Does it work with RedHat 6.1 or above?
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).
Does it work with Debian/SuSE/Mandrake/some other distribution?
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.
Does it work with development kernels?
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.
Where do I get Oracle from?
Firstly, if you're brave, have a very fast Internet connection or
inexhaustible patience (and unmetered access) you can download it from
Oracle Technet. Beware:
it's nearly 200Mb, and 8.1.6 is even bigger.
A better option is to get the CD. Oracle sometimes offer to send you a
free development CD when you join Technet. It's certainly worth
spending some time looking round their web site for
that. Alternatively, you can buy them from the Oracle Store for around
$40. It includes lots of other software too and comes on 15 discs.