<!doctype linuxdoc system>

<article>

<title>Oracle 8i on Linux RH7.X Installation HOWTO
<author>Krastio Atanassov <tt/&lt;st201789@educ.di.unito.it&gt;/ ,
and Luca Roversi <tt/&lt;roversi@di.unito.it&gt;/
<date>v0.1, 2002-07-15

<abstract>
Following this HOWTO you should be able to get "Oracle 8i, version 8.1.7,
Enterprise Edition for Linux" installed on a RedHat 7.X distribution 
(and, we hope, on distributions based/derived from it.) You will
also have some few hints at how to create a database.
We decide to write this notes because we did not manage to get through the 
installation, simply following the already existing 
"Oracle 8 for Linux" HOWTOs,
and Oracle documentation and we found people on the net experiencing our
problems.
</abstract>

<toc>

<sect>Introduction

<sect1>What's in here?
<p>
A sequence of steps that brought us to let Oracle 8i,
and Linux RedHat 7.2 working together.

<sect1>Who is this HOWTO for?
<p>
This document is for people who want to install Oracle 8i
version 8.1.7 Enterprise edition on Linux RedHat 7.2. At the time Luca
Roversi tried to combine the twos, he could only find people on the net who was
wandering why previous HOWTOs could not lead them to a successful installation.

We have not yet realized the points where this HOWTO substantially differs from
previous HOWTOs on the same subject; however, it lists operations that seems to 
be correct.

<sect1>Current versions of this document
<p>
The web site where this document can be found is:
<url name="author's web site" 
url="http://www.di.unito.it/~rover/LOCAL-HOWTOS/">

<sect1>Disclaimer
<p>
You get what you pay for. We offer no warranty of any kind, implied or
otherwise.  May be we shall help you where we can, but, legally, you are 
on your own.

<sect1>Credits and Thanks
<p>
This HOWTO has been written by Krastio Atanassov and Luca Roversi. 
The very first version could not have been created without the initial 
support the second author obtained from various mailing lists.

Also, the very first revision was written exploiting 
Stephen Darlington's <tt/&lt;stephen@zx81.org.uk&gt;/
"Oracle for Linux Installation HOWTO" sgml source as a template.

We welcome any constructive feedback on this HOWTO and any general
Linux or Oracle issues. Email us at 
<url url="mailto:st201789@educ.di.unito.it" name="st201789@educ.di.unito.it">
or/and
<url url="mailto:roversi@di.unito.it" name="roversi@di.unito.it">.

<sect1>License
<p>
This document is copyright 2002 Krastio Atanassov and Luca Roversi. 

<p>
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the 
 <url url="http://www.gnu.org/copyleft/fdl.html" 
      name="GNU Free Documentation License">, Version 1.1 or any 
 later version published by the Free Software Foundation.  

<sect>Starting off
<sect1>Prerequisites
<p>
At least 800M free on your hard disk. Type:

<verb>
bash$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda2             5.3G  3.6G  1.4G  72% /
</verb>

and read the field Avail.

<sect2>Hardware
<p>
The steps we are going to describe allow to have Oracle 8i, version 8.1.7
running on:
<itemize>
<item>
a laptop Toshiba Satellite 2800-100 with 128Mb RAM and a 600 Mhz Intel Celeron;
<item>
others ....
</itemize>

In any case, never underestimate Oracle's system prerequisites.

<sect1>Linux setup

<sect2>Distribution
<p>
We focus on a Linux RedHat 7.2 distribution, since we had problems 
with it and we wanted to use it. The steps we are going to describe should work
on any Red Hat 7.2 based Linux distribution.

<sect2>Distribution Setup
<p>
We assume you have your Linux RedHat 7.2 box installed and working in a
reasonable way for you. In any case, '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 is what you need.

<sect2>Setting users and groups
<p>
Login as root:

<tt>
$ su - root
</tt>

and type whatever password you decided root must have.

Create groups:

<verb>
bash# groupadd oinstall
bash# groupadd dba
bash# groupadd oper
</verb>

Create oracle user and set its password:

<verb>
bash# useradd oracle -g oinstall -G dba,oper
bash# passwd oracle (to change password)
</verb>

<sect2>Installing the right Java Virtual Machine
<p>
The only Java Virtual Machine compatible with Oracle 8i, version 8.1.7, is:
<url
url="ftp://sunsite.dk/mirrors/java-linux/JDK-1.1.8/i386/v3/jdk118_v3-glibc-2.1.3.tar.bz2">. 
<newline>
Do not think: "newer versions will be less 
buggy", as the installer probably won't work. And don't think.

Once downloaded it, move it:

<tt>
bash# mv jdk118_v3-glibc-2.1.3.tar.bz2 /usr/local
</tt>

untar it:

<tt>
bash# tar xvIf jdk118_v3-glibc-2.1.3.tar.bz2
</tt>

and create a symbolic link to the folder the command here above has just
created:

<tt>
bash# ln -s /usr/local/jdk118_v3 /usr/local/java 
</tt>

<sect2>Kernel parameters
<p>
Oracle documentation suggests that you make changes to the Linux kernel
so you can get more shared memory. 
If you decide to follow that way, keep the instructions in the Oracle 
documentation  and the <url name="Linux Kernel HOWTO"
url="http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html"> at hand to build your
new kernel.

<p>
In fact, the required changes can be made by setting some parameter in a
suitable initialization file. Just follow some steps:
<itemize>
<item>
<verb>
bash# cd /etc
</verb>
and create a new file <tt>rc.config</tt>, if it does not exists.
Inside <tt>rc.config</tt> copy the following four lines:
<verb>
cd /proc/sys/kernel
echo 250 32000 100 128 > sem
echo 4294967295 > shmmax
echo 4096 > shmmni
</verb>

<item>
Edit the file <tt>/etc/rc</tt> and add the line:
<verb>
/etc/rc.config
</verb>
</itemize>

<p>
In any case, if you want just to start playing with Oracle 8i, version 8.1.7, 
Linux RedHat 7.2 default settings can work fine, and you do not need to set
any kernel parameter, as just described.

<sect2>Setting up some libraries
<p>
There may be some compatibility problems between Oracle 8i and gcc versions >=
2.1. If you experience them, download these rpms:

<url url="http://www.pawprint.net/linux/compat-egcs-6.2-1.1.2.14.i386.rpm" name="compat-egcs-6.2-1.1.2.14.i386.rpm"><newline>
<url url="http://www.pawprint.net/linux/compat-glibc-6.2-2.1.3.2.i386.rpm" name="compat-glibc-6.2-2.1.3.2.i386.rpm"><newline>
<url url="http://www.pawprint.net/linux/compat-libs-6.2-3.i386.rpm"        name="compat-libs-6.2-3.i386.rpm"><newline>
    
install them, as usual, by:
<verb>
$ rpm -Uvh compat-egcs-6.2-1.1.2.14.i386.rpm compat-glibc-6.2-2.1.3.2.i386.rpm compat-libs-6.2-3.i386.rpm
</verb>
and, finally set a symbolic link because there is a small installation bug in
one of the packages just installed:
<verb>
bash# ln -s /bin/id /usr/bin/id
</verb>

<sect2>Final step
<p>
Reboot your machine and keep reading...


<sect>Installing Oracle 8i, version 8.1.7

<sect1>Setting up oracle's shell
<p>
Login as oracle user, edit the file <tt>.bash_profile</tt> and copy 
the following  lines into it:
<verb>
# +------------------------------------------------------------+
# | FILE          : .bash_profile                              |
# +------------------------------------------------------------+

umask 022
EDITOR=vi;                   export EDITOR
TERM=xterm;                  export TERM
TMPDIR=/tmp;                 export TMPDIR

# +--------------------------+
# | SETUP ORACLE ENVIRONMENT |
# +--------------------------+

export ORACLE_SID=O817DB
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/8.1.7

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin

export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export ORACLE_OWNER=oracle
export ORACLE_TERM=xterm

# +--------------------------+
# | LINUX STUFF              |
# +--------------------------+

export LD_ASSUME_KERNEL=2.2.5
source /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh

# +--------------------------+
# | SETUP SEARCH PATH        |
# +--------------------------+

PATH=$ORACLE_HOME/bin:/opt/bin:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/java/bin:.
export PATH

# +--------------------------+
# | SETUP JAVA ENVIRONMENT   |
# +--------------------------+

export JAVA_HOME=/usr/local/java

export CLASSPATH=/u01/app/oracle/product/8.1.7/jdbc/lib/classes12.zip:/u01/app/oracle/product/8.1.7/JRE:/u01/app/oracle/product/8.1.7/jlib:/u01/app/oracle/product/8.1.7/rdbms/jlib:/u01/app/oracle/product/8.1.7/network/jlib:.

# +-------------+
# | "GREETINGS" |
# +-------------+
echo ".bash_profile executed"
</verb>

Save the new version of <tt>.bash_profile</tt> and re-read it, by issuing:
<verb>
bash$ source .bash_profile
</verb>

Finally, if you have not any window manager running, it is time to let it
running.

<sect1>Starting the installer
<p>
We shall work under the hypothesis that you want to install cdrom Oracle
distribution. Mount the cdrom with:
<verb>
bash$ mount /mnt/cdrom
</verb>
and move to the directory that contains the installer:
<verb>
bash$ cd /mnt/cdrom/install/linux
</verb>
Then, launch the installer by:
<verb>
bash$ ./runInstaller
</verb>
and follow the steps on the GUI it should appear:
<enum>
<item>
after a first click on <tt>NEXT</tt> verify that the proposed path is:
<verb>
/u01/app/oracle/product/8.1.7
</verb>
and click <tt>NEXT</tt> again;
<item>
fill in the filed <tt>Unix Group Name</tt> with the value:
<verb>
oinstall
</verb>
If, for any reasons, this is not your first attempt to install Oracle, you will
not be prompted for the <tt>Unix Group Name</tt>. In this case jump to step 4,
below.
<item>
A pop-up window will ask you to run a script as root user, so, open a terminal
emulator and type in:
<verb>
bash$ su
bash# cd $ORACLE_HOME
bash# ./orainstRoot.sh
</verb>
When you're done click <tt>Retry</tt> on the pop-up window.

<item>
You are now given the option of what to install. Choose
<tt>Oracle Enterprise Edition</tt>, and
click <tt>Next</tt>.

<p>
It should now allow you to choose what you install with much
finer granularity. Unless you're particularly constrained by disk
space or know exactly what you need,  choose
<tt>Typical</tt> and click <tt>Next</tt>.

<item>
When it asks you the <tt>Global database name</tt>, if you do not have any
particular needs you can type in <tt>oracle.localdomain</tt>.
Also, verify that the values of <tt>SID</tt> is set to:
<verb>
O817DB
</verb>
Then, click <tt>Next</tt>.

<item>
The next step is to set the location of the database. Type in:
<verb>
/u01
</verb>
and click <tt>Next</tt>.

<item>
Finally, you are asked to indicate the location where you put java. 
If you followed our suggestions the path is already:
<verb>
/usr/local/java
</verb>
Since it is fine, click <tt>Next</tt>, and, then <tt>Install</tt>.

<item>
The installation completes by a pop-up windows that asks you to run a
script as root. If you closed the previously opened terminal open one
again and type:
<verb>
bash$  su
bash# cd $ORACLE_HOME
bash# ./root.sh
</verb>

After the script completes, click <tt>OK</tt> on the pop-up window.

<item>
<tt>Oracle Net8 Configuration</tt> starts.
Choose  <tt>Perform typical configuration</tt>
and click <tt>Next</tt>.
      
<item>
The configuration tool that starts is the 
<tt>Database Configuration Assistant</tt>. 

<p>
It may signal errors like:
<verb>
ORA-03114: not connected to  ORACLE
</verb>
The temporary solution is to just click on <tt>Abort</tt>. 
These kinds of errors will be recovered in a few!!

<p>
When the <tt>Database Configuration Assistant</tt> concludes its tasks, just
click on <tt>Next</tt> and the installation concludes.

<p>
If you needed to click on <tt>Abort</tt>, you must:
	<itemize>
	<item>
	Download the patch:
	<url 
	 url="http://www.pawprint.net/linux/glibc-2.1.3-stubs.tar.gz"
	 name="glibc-2.1.3-stubs.tar.gz">
	<item>
	move it into ORACLE_HOME by:
	<verb>
	bash$ mv ./glibc-2.1.3-stubs.tar.gz $ORACLE_HOME
	</verb>
	and let ORACLE_HOME your working directory:
	<verb>
	bash$ cd  $ORACLE_HOME
	</verb>	
	<item>
	uncompress and untar the patch:
	<verb>
	bash$ gunzip glibc-2.1.3-stubs.tar.gz
	bash$ tar xvf glibc-2.1.3-stubs.tar
	</verb>
	<item>
	run the patch script:
	<verb>
	bash$ ./setup_stubs.sh
	</verb>
	When it stops you are done!
	</itemize>
</enum>

<sect>Creating a database
<p>
We just typed:
<verb>
bash$ dbassist
</verb>
and we played around with the default options. This allowed us to generate an
instance of Oracle 8i we could use for teaching purposes, during an
undergraduate course on the foundational principles of data bases. If you need
more professional-oriented instances, consult other HOWTOs or read Oracle
documentation.

<p>
In any case, at this point, what you should be able to do is to let
interactive Oracle sql interpreter SQL*Plus run, by issuing:
<verb>
bash$ sqlplus
</verb>
and by choosing one of the following two default account/passwd pairs 
that Oracle creates by default. The first pair is:
<verb>
user-name:sys
password:change_on_install
</verb>
while the second is:
<verb>
user-name:system
password:manager
</verb>

<p>
However, if you, just for example,  want to connect from/to another machine 
we  address you to other HOWTOs; for example, Stephen Darlington's 
"Oracle for Linux Installation HOWTO" covers this
subjects and gives other useful hints in its final sections.

<sect>Final Words
<p>
Our goal was to write a short list of steps to have Oracle 8i, version 8.1.7,
running on RedHat 7.2. We think we have gotten to our goal, so we stop here.

<p>
We think that it would be nice merge all HOWTOs, related to some Oracle
installation on some Linux distribution could be very helpful. This is not in 
our coming projects. Any volunteer?

<sect1>Some Internet Resources
<p>
To conclude, we have copied here, with some minor changes, the list of 
Internet resources Stephen Darlington's "Oracle for Linux Installation HOWTO"
lists, just for easy of use:
<itemize>

<item><url name="Oracle Technet"
url="http://technet.oracle.com">. This is Oracle's public and free
support website. Lot's of very useful information there.

<item><url name="Oracle Metalink"
url="http://support.oracle.com">. Oracle's private (you need a support
contract) support website. Only slightly more useful than Technet!

<item><url name="Oracle Fans"
url="http://www.orafans.com">. Editorials and support forums. No
official connection to Oracle. 

<item><url name="OraFaq" url="http://www.orafaq.org">. A site full of
questions and answers regarding Oracle on all platforms.

<item>Oracle Linux mailing list (Send a mail to <url
url="mailto:ListGuru@fatcity.com" name="ListGuru@fatcity.com"> with
the words 'SUBSCRIBE ORACLE-LINUX-L' in the body.

</itemize>

</article>

