Tag Archives: unix

Installing Oracle 9i

Prerequisites

Oracle 9i is the result of merging almost their entire product line into two products. To say that 9i is the database is a little misleading, but this is what you need if you want to keep current with your Oracle database.

There are a few things that you need to be aware of before embarking on the installation of Oracle 9i. First are it’s hardware requirements. They’re huge, much more than 8i which itself was large.

Oracle recommend 512Mb of real memory (and twice as much swap space) and Xeon processors. The install itself takes over 2Gb and requires over 400Mb of temporary space! Like 8i, you can get by with less, especially if you’re just playing around rather than trying to do any real work. My hardware has improved since I wrote the original HOWTO. I still have the same Celeron 466Mhz processor but I’m now up to 384Mb of memory and in addition to the original 8Gb drive I now have a 120Gb disk mainly dedicated to /home.

This configuration does work, but it’s clearly not optimal. Installation took quite some time and creating a new database was painful.

If you don’t believe me, listen to Philippe Andersson: “I monitored the box closely (through xosview) during the database creation phase (which lasted for over an hour, BTW), and the RAM + swap used topped at over 1.1 GB (while the average system load peaked at 29.0) !! That’s what I call pushing the hardware to the limits!” (I didn’t see numbers anything like that high, though.) Conversely, Frits Hoogland says he managed to get it working with only 192Mb. (Brave man.)

I also now have broadband Internet access which came in very useful for downloading the 1+Gb of archives from Oracles website. That’s a lot of data! (For those that are counting, that’s more than twice the size of 8i R3.) If you pay for your bandwidth it may even be cheaper to buy those three CD’s from Oracle.

On the software front I’ve upgraded to Redhat 8. I’ve added no special other software, so if you have Java or similar installed now might be a good time to remove it from your path so the installer doesn’t get confused.

Many problems with 8i R3 were because people were using newer distributions that use GLIBC 2.2. With 9i you must have this newer version of the C library. They also stipulate the 2.4 kernel and strongly recommend SuSE. (But then they recommended RedHat previously and practically no-one took any notice.)

On with the show

With all these warnings and prerequisites, you’re probably thinking that it’s tricky. Luckily you’d be wrong. This is by far the easiest Oracle install I’ve ever done.

First it’s necessary to extract the installer from the files you downloaded from the Oracle website:

zcat Linux9i_Disk1.cpio.gz | cpio -idmv

It’s then convenient to burn them onto CD’s.

The next step is to create an oracle user and “dba” group (which “oracle” should be a member of).

That done, I inserted the first disc in my CD-ROM drive, mounted it and typed /mnt/cdrom/runInstaller. It’s probably a good idea not to change your working directory to your CD, as if you do you won’t be able to eject it when prompted.

After that I just followed the prompts; no special trickery. I just installed the default version of everything.

I did have three problems along the way. The first was a linker error, which manifested itself as “Error in invoking target install of makefile /opt/oracle/product/9.2.0/ctx/lib/ins_ctx.mk”. I just clicked “Ignore”. I’m not sure what feature that means I’m missing, but I’ve not noticed anything important so far.

The final two problems relate to creating the database. I found that the “ORA-27123: unable to attach to shared memory segment.” error in fact referred to insufficient shared memory being available. Either increase the amount available (see below) or decrease the memory requirements of your database.

I also found that I couldn’t create the test/demo databases (which I assume are created just by copying some files from the CD). Not to worry: you can easily create a custom database. With hardware like mine, the process takes ages but it works with absolutely no problems.

Altering your shared memory

It used to be quite an ordeal to change the shared memory setting under Linux, but with the 2.4 kernel it’s as simple as logging in as root and typing this:

echo $((512*1024*1024)) > /proc/sys/kernel/shmmax

This gives you 512Mb of shared memory (which would be rather too much for my machine!). You’ll probably want to put that in your startup scripts.

Installing Oracle on Redhat 8

In all honesty, I’ve not managed to get Oracle working properly yet. When I upgraded my RedHat 7 machine to 8 it still worked, when I installed it from scratch it didn’t. This clearly shows that it’s possible to get Oracle 8i working, but I can’t say how!

For those that are interested, I found that it was easy to get the installer to complete, but I get the infamous “end of communication channel” error when trying to start an instance.

Programming Languages Home

You tend to find two things relating to programming languages on the Internet. The first is a long list of all the languages, often with links to a representative web site. The second category are the “representative” web sites, detailed descriptions of a particular language.

I hope to make this part of ZX81.org.uk to be the middle-ground. I won’t cover every language ever designed and nor will I cover them in vast amounts of detail. Instead I’ll look at each languages main features, advantages and flaws.

What makes me qualified to write these critiques? Well, I’ve used all of the languages covered so far on at least one non-trivial project and at university I did a lot of programming language design and compiler development courses.

The two languages I’ve covered so far are the major Unix stalwarts Perl and C.

Oracle Support Comedy Errors

Don’t get me wrong. Oracle support analysts have a difficult job. Their products are large, complex beasts and you don’t necessarily expect an immediate response. These, however, I did not expect…

  • Having spent over a day with hourly contact with support, they ring back returning a voice-mail message left before managing speaking to a ‘real’ person. Twenty-seven hours apparently wasn’t enough for a correct response, either.
  • Two weeks of problems lead to a call to our sales manager. Obviously concerned, he went away to research the problem. He came back a day or two later. “This problem you’re having with you SCSI CD-ROM…,” he began. Good effort, wrong customer.
  • They asked us to download a patch from their web site, a mere 36Megs. This looked remarkably similar to a patch we’d received the previous week for another problem. Next they insisted that we needed the next version of the SmartClient software. They even sent someone out to install it for us. Naturally, this solution didn’t work. They ummed and arred for a while before declaring it a ‘bug’ and sending it off to the states to be fixed. This is the last I heard of this problem.

Installing Oracle on Redhat 7

Introduction

The subject at hand is really much wider than just Redhat 7.x, especially as more recent distributions are following Redhats lead and are now including glibc 2.2 also. I have no reason to believe that this process will not work with newer versions of SuSE, Debian, etc.

The other point to note is that I have not tried the procedure outlined here. I have migrated my box from Debian 2.2 to RedHat 7.2 and can testify that Oracle still works, but I have not actually performed an installation. I have, however, recieved a good number of emails confirming that it works, so don’t worry!

Most of the following material comes from two people, who are the real people you should thank if it works for you. They are John Smiley and Max McClanahan.

The process

The problem is that Oracle 8.1.x needs glibc 2.1.3. It will link without error with glibc 2.2, but when you try to run dbassist or create a database from scratch, there are problems (dbassist hangs, ‘End of file on communication channel’, etc.)

Here is a step-by-step process for getting Oracle 8.1.6 or 8.1.7 working on systems with glibc 2.2 (don’t bother with 8.1.5 if you can help it). Note that 9i requires glibc 2.2 and will not work with earlier versions:

  1. Install the compat-glibc RPM for 2.1.3. The exact filename will vary depending on your version of RedHat or other distribution. Many people (Fernando Boaglio, Peter Whysall, Jose T. Martin Prior amongst others) have noted that Oracle provide a patch (glibc-2.1.3-stubs.tar.gz) that provides the same functionality. I prefer the RPM’s personally, but this will certainly work.
  2. Execute the following command: . /usr/i386-glib21-linux/bin/i386-glibc21-linux-env.sh
  3. Type “export LD_ASSUME_KERNEL=2.2.5”
  4. Type: cd $ORACLE_HOME/bin
  5. Run the following command from the UNIX prompt: relink all

All of the Oracle software, including the assitants, will work fine now.

This technique will work on RedHat 7.0 with the 2.2.16 kernel, as well as the 2.4.0 and 2.4.1-pre11 kernels.

The rest

John Smiley also asked me to point out that Oracle have issues some patches (ftp://205.227.44.220/server/patchsets/unix/LINUX/8161/bug1467074/) that are required in order for them to consider your machine ‘certified’:

Operating System: Intel Based Server LINUX Version:Red Hat 7.0
Oracle Server - Enterprise Edition Version: 8.1.7 (8i)
N/A Version: N/A
Status: Certified
Oracle Server - Enterprise Edition Version: 8.1.7 (8i)
Bug Number: 1467074
REDHAT 7.0/ORA-3113 ISSUE (GLIBC 2.1.94 AND LATER)
Patch for bug 1467074 is mandatory for this certification.

RedHat even have a bug report on this issue, which may be worth a look: Bugzilla report from Redhat.

Oracle Comedy Errors Home

Welcome to the Oracle Comedy Errors Page!

This page is dedicated to all those frustrating hours that you have to spend fiddling about with Oracle just to get it working as it says it does on the box.

These are just things that have happened to me and the projects that I have been involved in. To make a really complete Oracle Comedy Errors Page we need your input.

For those that have already contributed, there is always this page. It also catalogues the projects and Oracle software that I’ve used to build up this list.

Why is this page here?

There seems to be a great number of people who are only too eager to bash Microsoft, but only a few who seem to hate Oracle. Looking at their products, I thought that there must be at least a few sympathetic souls on the net. A quick search on HotBot and Altavista seems to indicate otherwise.

To rectify this shameless situation, I aim to produce, if not the first, then the definitive list of Oracle cock-ups and anecdotes. Naturally, I can’t do this all on my own; there are others.

I can supply the TAR numbers if you don’t believe me…

Content