HOWTO:
Oracle 8i EE Release 2 (8.1.6) Installation for Linux
Copyright © 2000 - 2004 Computer Engineering Inc. All rights reserved.
I. Purpose
This HOWTO will help guide you through Oracle8i (8.1.6) complex installation. This installation is very long and tricky. The selections stated in the procedures were specifically made to avoid the Oracle installation bugs. This document can be used by all Oracle users as it is written in an step-by-step manner.
Everything was developed and tested on an Ix86 Red Hat (6.2) platform, but there is no reason why it could not be tried on other linux platforms, or other Red Hat versions. If you do get it to work with something else, please send us your modifications or your OK on that platform.
If you have any questions, comments or suggestions, email us.
II. Pre-Installation
Familiarise yourself with the bash shell. You will not be able to install ORACLE 8.1.6.1 without using a shell, so ORACLE's decision to provide a gui (Graphical User Interface) is really sort of a waste of time, and effort but looks quite slick none the less.
First, check that your machine has enough memory and disk space to install Oracle8i. The installation will use up to a maximum of 1000 MB of disk space and about 256 MB of memory (RAM).
In a shell/ console (as root) type:
These commands will describe the amount of disk space on your machine and are beyond the scope of this document. Type "man df" to learn more.
To view memory information, at the same shell/console, type:
cat /proc/meminfo
The important number is the SwapTotal. It should be > 250 Mb.
To ensure a good install, we must prepare the environment by adding the required users, groups, directories and links.
In a shell as root user:
Check that "gmake" command is available:
If "gmake" command does not exist, then create a link from "make" to "gmake":
Obtain Oracle 8i Enterprise Edition Release 2, version 8.1.6 download (>250 MB) from either the net or from ...
- a CD:
- the Internet:
http://technet.oracle.com/software/products/oracle8i/software_index.htm
ftp://ftp.oracle.com/pub/www.otn/linux/oracle8i/oracle8161_tar.gz.
If you have obtained Oracle 8i from a CD, just place it in your CD tray. However, if you have downloaded it, save it as "/home/oracle/oracle8161.tar.gz".
Unlike version 8.1.5, in this version of Oracle8i (8.1.6), it is unnecessary to download JRE (Java Runtime Environment) as it is already shipped within the download.
Get our tarball of tools (oinstalltools), and type the following:
**Note: Do NOT define NLS_LANG environment variable as it causes the installation to fail and alters Oracle's date settings.
Set the newly created environment variables:
Test that the environment variables are set properly:
Add the following lines to /home/oracle/.bash_profile file:
You may want to check to see what processes are runnning (ps -ef), and what ipcs values are there.
III. Installation
**Installation CANNOT be performed in text mode.
X-Windows the defacto UNIX graphical user interface, and is started by the operating system, or manually by logging on as root, and typing "init 5".
The text mode (*what you don't want*) can be initiated by:
- typing "linux 3" at the LILO prompt OR
- "[ctrl]+[alt]+[F1]", logging in as root then typing "init 3"
The graphic mode, or "init 5" can be accessed by:
- typing "linux 5" at the LILO prompt OR
- logging in as root then typing "init 5"
- you have already set up your workstation to boot up in graphical mode as a default
The text mode is just text, no fancy icons or windows. Thus all commands must be executed through the keyboard, not the mouse. For now, we do NOT want the text mode. We need the fancy icons and windows to run the Oracle installation.
Continuing ... Log on as root (if you have not done so already) within the graphical login screen at startup, or after the init 5 / linux 5 command.
Open up a terminal window from the console. Look over and change the initdev.ora file if necessary.
FINALLY! the good bits!
If you don't know how to edit files in UNIX, then learn how before you muck
around with this stuff.
Set the environment variable OINSTALLMEDIA to "TARBALL" if you have downloaded the distribution from technet (do no such assignment if you have the CD).
If you are running the installer through a virtual private network, or through a LAN running XWindows, then you will have to allow the oracle XWindows based programs to connect to your machine by typing:
where the <ip address> is the address of the machine that you will be installing ORACLE onto. DO NOT LEAVE A SPACE BETWEEN THE + AND THE IP ADDRESS, or your friends and enemies will boot XWindows programs on YOUR screen from accross the LAN.
I like to nuke the oracle application directory before I start, BUT BE CAREFULL! If your favourite DBA has set up another instance, or another version of ORACLE on the machine that you are installing from, then you may delete some old data, which just might be your coprorate database. So don't rm -rf anything without pondering whether you will lose your job AND get sued by the company you are doing work for.
The last thing to do before you start is to get a good idea what proccesses, and interprocess comminications (ipcs) are running out there. Here is an example of what you may see. Do not be concerned with anything other than those processes and Inter-process Communications (ipcs) owned by oracle. At the start there should be NO processes or ipcs owned by ORACLE before you start.
# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Sep06 ? 00:00:08 init
root 2 1 0 Sep06 ? 00:00:42 [kflushd]
root 3 1 0 Sep06 ? 00:01:04 [kupdate]
root 4 1 0 Sep06 ? 00:00:00 [kpiod]
root 5 1 0 Sep06 ? 00:00:48 [kswapd]
root 6 1 0 Sep06 ? 00:00:00 [mdrecoveryd]
root 339 1 0 Sep06 ? 00:00:45 syslogd -m 0
root 348 1 0 Sep06 ? 00:00:03 klogd
nobody 362 1 0 Sep06 ? 00:00:00 [identd]
root 380 1 0 Sep06 ? 00:00:00 crond
root 492 1 0 Sep06 ? 00:00:13 gpm -t ps/2
xfs 678 1 0 Sep06 ? 00:03:12 xfs -droppriv -daemon -port -1
root 696 1 0 Sep06 tty2 00:00:00 [mingetty]
root 697 1 0 Sep06 tty3 00:00:00 [mingetty]
root 698 1 0 Sep06 tty4 00:00:00 [mingetty]
root 699 1 0 Sep06 tty5 00:00:00 [mingetty]
root 700 1 0 Sep06 tty6 00:00:00 [mingetty]
root 1054 1 0 Sep06 ? 00:00:00 [lockd]
root 1055 1054 0 Sep06 ? 00:00:00 [rpciod]
root 1071 1 0 Sep06 ? 00:00:00 [rpc.statd]
root 2027 1 0 Sep06 ? 00:00:11 httpd
root 29465 1 0 Sep11 tty1 00:00:00 [mingetty]
root 27170 1 0 Sep28 ? 00:00:02 /usr/bin/kdm -nodaemon
root 10522 27170 0 Oct02 ? 00:16:25 /etc/X11/X -auth /usr/X11R6/lib/
root 2982 1 0 Oct30 ? 00:00:01 inetd
nobody 18592 2027 0 Nov12 ? 00:00:00 httpd
nobody 18593 2027 0 Nov12 ? 00:00:00 httpd
nobody 18594 2027 0 Nov12 ? 00:00:00 [httpd]
nobody 18595 2027 0 Nov12 ? 00:00:00 httpd
nobody 18596 2027 0 Nov12 ? 00:00:00 httpd
nobody 18597 2027 0 Nov12 ? 00:00:00 httpd
nobody 18598 2027 0 Nov12 ? 00:00:00 httpd
nobody 18599 2027 0 Nov12 ? 00:00:00 httpd
root 1454 1425 0 Nov14 pts/0 00:00:00 [su]
root 1458 1454 0 Nov14 pts/0 00:00:00 -bash
root 1493 24375 0 Nov14 ? 00:00:01 /usr/sbin/sshd
root 1498 1493 0 Nov14 pts/1 00:00:00 -bash
root 4545 27170 0 Nov15 ? 00:00:02 -:0
root 5049 5047 0 Nov15 pts/3 00:00:00 -bash
root 10491 10489 0 06:42 pts/5 00:00:00 -bash
# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 2688 nobody 600 46084 9 dest
------ Semaphore Arrays --------
key semid owner perms nsems status
------ Message Queues --------
key msqid owner perms used-bytes messages
Run our script: oinstallstage1.sh [ip address of the machine your keyboard is attached to]
Once the script is running, dialogs will appear and you will be prompted
to select and answer the appropriate questions.
Window One: Oracle8i EE Release 2: Oracle Universal Installer
"Welcome" screen
"File Locations" screen
Source: /home/oracle/Oracle8iR2/stage/products.jar (or cd location)
Destination: /u01/app/oracle/product/8.1.6
- It should display "Loading Product Information"
"Available Products" screen
- Select "Oracle8i Enterprise Edition 8.1.6.1.0"
"Installation Types" screen
- Select "Custom"
"UNIX Group Name" screen
- This screen only seems to apear the first time that the installation
script is run.
- Type dba
"Dialog OrainstRoot.sh"
- This screen also only seems to apear the first time that the installation
script is run.
- do as the dialog says in a separate window as the root user.
"Available Product Components" screen
- As Oracle's default setting, all products are selected except for
Oracle Protocol Support, Oracle SQLJ and Linux Documentation.
Select "Oracle Protocol Support" and "Linux Documentation". Also,
verify that all components are a "new install".
- Click on the Java Runtime Environment 1.1.8 text.
"Component Locations" screen
Java Runtime Environment
Destination Location of JRE 1.1.8: /u01/app/oracle/jre/1.1.8
- Oracle8i should be in the /home partition
"Priviledged Operating System Groups" screen
Database Administrator (OSDBA) Group: dba
Database Operator (OSOPER) Group: dba
Select "No" for "Upgrading or Migrating an Existing Database".
Select "No" to Create Database.
"Summary" screen
- Click "install" to begin OUI installation.
- Go get your favourite available beverage, as this takes a while.
"Setup Privileges" window will popup, prompting you to run "root.sh"
script as root.
- In a new shell or our pop up script window (as root):
/u01/app/oracle/product/8.1.6/root.sh
The following output should appear in the shell:
Creating Oracle Inventory pointer file (/etc/OraInst.loc)
Changing group name of /u01/app/oracle/oraInventory to oinstall.
Running Oracle8 root.sh script...
The following environment variables are set as:
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Type /usr/local/bin.
Creating /etc/oratab file ...
Entry will be added to the /etc/oratab file by Database Configuration Assistant (dbassist) when a database is created. Finished running generic part of root.sh script. Now product-specific root actions will be performed.
IMPORTANT NOTE: Please delete any log and trace files previously created by the Oracle Enterprise Manager Intelligent Agent. These files may be found in the directories you use for storing other Net8 log and trace files. If such files exist, the OEM IA may not restart.
- "IMPORTANT NOTE" can be ignored, deleting the log and trace files
is unnecessary.
- Click "OK" on the "Setup Privileges" dialog window.
Window Two: Configuration Tools: Net 8 Configuration Assistant
"Welcome to Net8 Configuration Assistant" screen
Do NOT select "Perform Typical Installation".
"Directory Service Access" screen
- Select "No" to defer directory service access configuration to
another time.
"Listener Configuration: Listener Name" screen
Default listener name: LISTENER
"Listener Configuration: TCP/IP Protocol" screen
Default port: 1521
"Listener Configuration: More Listeners" screen
- Select "No"
"Listener Configuration: Done" screen
"Naming Methods Configuration" screen
- Select "No"
"Done" screen
- Click "Finish" to complete net8 Configuration Assistant.
"End of Installation" screen in OUI
- Click "Exit" and select "Yes" to confirm exiting OUI.
- OUI window should not be present now.
*If you encounter a NLS_LANG environment error, it means that the NLS_LANG environment variable is set somewhere. Unset this variable and do a fresh install by running "./oracletest" script as root again.
Also check that NLS_LANG is commented (#) out in ".bashrc" file
Check to see what processes are runnning, and what ipcs values are there (you did this at the start as well). The oracle processes should be the same, except for one additional "listener" process. These are hard to see but it will look something like :
Now execute the second stage script (as root still):
This will run the dbassist script:
Window Three: Oracle database Configuration Assistant (ODCA)
"Welcome" screen
- Select "Create a database"
"Select Database Type" screen
- Select "Custom"
"Primary Database Type" screen
- Select "Multipurpose"
"Concurrent Users" screen
- Increase the number of concurrent users at one time from 15 to 60.
Select "Dedicated Server Mode".
Check that all options are selected (excluding Oracle Visual Information
Retrieval), then click "Next".
Enter "dev" for "Global Database Name". This should automatically set
"SID" to the same value (dev) too.
"Control File Location" screen
- Accept all default settings for control file locations.
On the next screen, change the following values on the specified tabs:
"Temporary" tab: value for "Size" should be set to 150 Mb
"Rollback" tab: value for "Size" should be set to 150 Mb
- click "NEXT"
Change the "Redo Size Log" for file 1, 2 and 3 to 10000KB.
- click "NEXT"
Accept the default "Checkpoint Interval" and "Timeout".
- click "NEXT"
Edit the following values:
"Processes" set to 100
"Block Size" set to 4096
- click "NEXT"
Accept defaults for "Trace File Directory".
- click "NEXT"
Select "Save information to a shell script", and click "Finish".
"Save" path should be
/u01/app/oracle/product/8.1.6/assistants/dbca/sqldev.sh.
- There should be confirmation of the save.
"oinstallstage2.sh" script will run all operations needed to complete the installation.
THE SECOND STAGE OF THE INSTALLATION WILL TAKE ABOUT ONE HOUR AND TEN MINUTES ON A 500 MHz Machine with 256 Meg of RAM. So get another beverage or do something else productive like sleep, or something.
After you have finished, the processes and ipcs can be checked as we have done in the following example. Again do not be concerned with anything other than those processes and Inter-process Communications (ipcs) owned by oracle.
# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Sep06 ? 00:00:08 init
root 2 1 0 Sep06 ? 00:00:42 [kflushd]
root 3 1 0 Sep06 ? 00:01:04 [kupdate]
root 4 1 0 Sep06 ? 00:00:00 [kpiod]
root 5 1 0 Sep06 ? 00:00:48 [kswapd]
root 6 1 0 Sep06 ? 00:00:00 [mdrecoveryd]
root 339 1 0 Sep06 ? 00:00:45 syslogd -m 0
root 348 1 0 Sep06 ? 00:00:03 klogd
nobody 362 1 0 Sep06 ? 00:00:00 [identd]
root 380 1 0 Sep06 ? 00:00:00 crond
root 492 1 0 Sep06 ? 00:00:13 gpm -t ps/2
xfs 678 1 0 Sep06 ? 00:03:12 xfs -droppriv -daemon -port -1
root 696 1 0 Sep06 tty2 00:00:00 [mingetty]
root 697 1 0 Sep06 tty3 00:00:00 [mingetty]
root 698 1 0 Sep06 tty4 00:00:00 [mingetty]
root 699 1 0 Sep06 tty5 00:00:00 [mingetty]
root 700 1 0 Sep06 tty6 00:00:00 [mingetty]
root 1054 1 0 Sep06 ? 00:00:00 [lockd]
root 1055 1054 0 Sep06 ? 00:00:00 [rpciod]
root 1071 1 0 Sep06 ? 00:00:00 [rpc.statd]
root 2027 1 0 Sep06 ? 00:00:11 httpd
root 29465 1 0 Sep11 tty1 00:00:00 [mingetty]
root 27170 1 0 Sep28 ? 00:00:02 /usr/bin/kdm -nodaemon
root 10522 27170 0 Oct02 ? 00:16:25 /etc/X11/X -auth /usr/X11R6/lib/
root 2982 1 0 Oct30 ? 00:00:01 inetd
nobody 18592 2027 0 Nov12 ? 00:00:00 httpd
nobody 18593 2027 0 Nov12 ? 00:00:00 httpd
nobody 18594 2027 0 Nov12 ? 00:00:00 [httpd]
nobody 18595 2027 0 Nov12 ? 00:00:00 httpd
nobody 18596 2027 0 Nov12 ? 00:00:00 httpd
nobody 18597 2027 0 Nov12 ? 00:00:00 httpd
nobody 18598 2027 0 Nov12 ? 00:00:00 httpd
nobody 18599 2027 0 Nov12 ? 00:00:00 httpd
root 1454 1425 0 Nov14 pts/0 00:00:00 [su]
root 1458 1454 0 Nov14 pts/0 00:00:00 -bash
root 1493 24375 0 Nov14 ? 00:00:01 /usr/sbin/sshd
root 1498 1493 0 Nov14 pts/1 00:00:00 -bash
root 4545 27170 0 Nov15 ? 00:00:02 -:0
root 5049 5047 0 Nov15 pts/3 00:00:00 -bash
root 5505 1 0 Nov15 pts/3 00:00:00 kterm -title Use this terminal w
root 5557 5505 0 Nov15 pts/4 00:00:00 [bash]
oracle 7848 1 0 Nov15 ? 00:00:00 /u01/app/oracle/product/8.1.6/bi
oracle 10461 1 0 06:40 ? 00:00:00 ora_pmon_prod
oracle 10463 1 1 06:40 ? 00:01:04 ora_dbw0_prod
oracle 10465 1 1 06:40 ? 00:00:54 ora_lgwr_prod
oracle 10467 1 0 06:40 ? 00:00:03 ora_ckpt_prod
oracle 10469 1 0 06:40 ? 00:00:02 ora_smon_prod
oracle 10471 1 0 06:40 ? 00:00:00 ora_reco_prod
oracle 10473 1 0 06:40 ? 00:00:00 ora_s000_prod
oracle 10475 1 0 06:40 ? 00:00:00 ora_d000_prod
root 10491 10489 0 06:42 pts/5 00:00:00 -bash
# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 2688 nobody 600 46084 9 dest
0x00000000 48769 oracle 640 69632 8
0x00000000 48770 oracle 640 28311552 8
0x00000000 48771 oracle 640 27262976 8
0xcfc9f330 48772 oracle 640 29544448 8
------ Semaphore Arrays --------
key semid owner perms nsems status
0x0a376f06 896 oracle 640 104
------ Message Queues --------
key msqid owner perms used-bytes messages
IV. ORA-Errors
WARNING: you may need to install again. We installed about 15 times on the
first attempt (thus this document).
You may check for errors in the /home/oracle/sqldev.out output. The most major error is when that file does not even exist.
Other less important errors are those in /home/oracle/stage1.out, and /home/oracle/stage2.out. there may be some complaints about ioctl in those which are there because we are su'ing to oracle through an inbound stream other than stdin.
These are a sample of the types of errors that will be displayed when Oracle installs its Database Assistant. All of these errors can be ignored as some of the processes, tables or roles do not exist yet, but will be created later.
ORA-01919: role ??? does not exist
ORA-01432: public synonym to be dropped does not exist
ORA-04043: object ??? does not exist
ORA-00942: table or view does not exist
ORA-02289: sequence does not exist
ORA-01434: private synonym does not exist
Hopefully you will not encounter these errors. They mean trouble! Either you do not have enough memory to install Oracle or you did not configure things correctly.
ORA-01921: role name '???' conflicts with another user or role name
ORA-03114: not connected to ORACLE
VM: killing process ORACLE
V. Testing the Installation
Once the installation is complete, we must test for errors. The
"Oracle Acceptance Test" is available at http://photo.net/wtr/oracle.
Hold down the right click on "acceptance-sql.txt" and drag to
"Save link as...". Modify the "Save as" path to /tmp/acceptance-sql.txt.
In a shell as oracle user:
The following output should be displayed:
SQL*Plus: Release 8.1.6.0.0 - Production on Wed Aug 2 13:45:49 2000
(c) Copyright 1999 Oracle Corporation. All rights reserved.
Connected to:
Oracle8i Enterprise Edition Release 8.1.6.1.0 - Production with the
Partitioning option
JServer release 8.1.6.0.0 - Production
Then, at the prompt type "exit":
Disconnected from Oracle8i Enterprise Edition Release 8.1.6.1.0 -
Production With the Partitioning option
JServer Release 8.1.6.0.0 - Production
In another shell, logged on as oracle user:
This display should follow:
Oracle Server Manager Release 3.1.6.0.0 - Production
Copyright (c) 1997, 1999, Oracle Corporation. All rights reserved.
Oracle8i Enterprise Edition Release 8.1.6.1.0 - Production With the
Partitioning option
JServer Release 8.1.6.0.0 - Production
At the Server Manager prompt:
If there is this error:
ORA-01081: cannot start already-running ORACLE - shut it down first
Then login to a different shell as root, use "ps -ef" command and kill
all oracle process that are running.
The oracle processes that are running are similar to these:
Else, continue with:
When you see the system date in this format, then you've successfully
passed the first hurdle. So far your installation is error free.
While the acceptance test is running, it will output all errors found. If no errors were found, then CONGRATS on a successful Oracle8i install. However, if you have errors, begin by going through the installation guide to verify that all the procedures were completed, check that all files directories in "/home/oracle" are owned by owner oracle and group dba. Then run the "oracletest" script again. The script automatically removes any trace of previous Oracle installations, making a fresh install.
VI. References
- ORACLE site
http://www.oracle.com
http://technet.oracle.com
Oracle8i Release 2 (8.1.6) for Linux Intel Installation Guide
http://technet.oracle.com/doc/oracle8i_816/linux_816/unixdoc
Postings
http://technet.oracle.com/support/bboard/discussions.htm
- *8.1.6 Installation Guide
<http://www.arsdigita.com/ad-training/acs-install/oracle>
- Linux Doc Oracle8 HOWTO
<http://www.linuxdoc.org/HOWTO/Oracle-8-HOWTO-3.html>
- *Oracle8i on RH <http://homepage.tig.com.au/~jmsalvo/linux/oracle8i.html>
- Support/ Postings
*http://www.photo.net/bboard/q-and-a.tcl?topic=web/db
- Oracle Acceptance Test <http://photo.net/wtr/oracle/acceptance-sql.txt>
- Oracle Server Utilities: SQL*Loader
Ctrl File <http://www.infoboard.com/packagedoc/oradoc/DOC/Server/doc>
(for SQL*Loader --> SUT73; for SVRMGRL --> SVRMGR)
Concepts <http://wpi.wpi.edu/server.815/a67792/ch03.htm>
*Guide <http://www.aber.ac.uk/~ccuwww/docs/c/c1.html>
VII. Thanks
A big THANKS to all who helped (in alphabetical order):
Ryan Campbell
Computer Engineering Inc. (for fronting the expenses)
John Keiser
Blair Lowe
Juergen Lueters
Jesus (John) Salvo
Adelaide Yip
For more information about our products and services, please phone us at (780) 239-8494 (within Edmonton, Alberta, Canada), (403) 998-8494 (within Calgary, Alberta, Canada), (306) 717-7709 (Saskatoon), (416) 993-7027 (Toronto) 1-877-968-7626 or 1-877-807-0777 (toll free within North America).







