一,准备工作
1,先安装好RedHat AS4.0(完全安装)
Oracle 9i的安装文件:
ship_9204_linux_disk1.cpio.gz 
ship_9204_linux_disk2.cpio.gz 
ship_9204_linux_disk3.cpio.gz 
 
Oralce补丁p4198954_21_linux.zip解压产生
rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm (p4198954_21_linux.zip)
rpm -ivh compat-libcwait-2.0-2.i386.rpm (p4198954_21_linux.zip)
=======================================================
p4198954_40_LINUX.zip      (compat-oracle-rhel4-1.0-5.i386.rpm和compat-libcwait-2.0-2.i386.rpm 不打这个补丁在安装ORACLE时会报一大堆的错,找不到文件什么的)
p3006854_9204_LINUX.zip    (不打这个补丁在安装ORACLE时运行runInstaller.sh后图形界面出不来,没法安装)
p2617419_10102_GENERIC.zip (网上文章说要p2617419_210_GENERIC.zip文件,ORACLE工程师所给文件版本更新。)
p3238244_9204_LINUX.zip    (p2617419和p3238244两个补丁是为解决Agent启动不了问题)
==========================================================
 

二,创建相关安装目录和环境变量
1,创建user/group;2,建立oracle安装文件夹;
# groupadd dba
# groupadd oinstall
# mkdir -p /opt/oracle/9i
# useradd oracle -g oinstall -G dba -d /opt/oracle
# passwd oracle
# chown -R oracle.dba  /opt/oracle
chown -R oracle.oinstall /usr/local/src/oracle9i *安装文件目录
3,配置环境变量;
使用Oracle用户登陆:
#su – oracle
$vi .bash_profile
以下是配置文件的内容
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
-----------------------------------------------------------------
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/9i
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin
export ORACLE_OWNER=oracle
export ORACLE_SID=agps16
export ORACLE_TERM=xterm
export LD_ASSUME_KERNEL=2.4.19
export THREADS_FLAG=native
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LANG=en_US
export GDM_LANG= en_US
export LC= en_US
-----------------------------------------------------------------
export PATH
unset USERNAME
4,设置系统参数;
#su – root切换到root用户
a) 修改#vi /etc/sysctl.conf, 以下是配置文件的内容:
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
------------------------------------------
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
------------------------------------------
修改后运行#sysctl –p命令使得内核改变立即生效;
(译者注:一般情况下可以设置最大共享内存为物理内存的一半,如果物理内存是 2G,则可以设置最大共享内存为 1073741824,如上;如物理内存是 1G,则可以设置最大共享内存为 512 * 1024 * 1024 = 536870912;以此类推。4G/2147483648)
建议永久地增加 shmmax 设置。
sem 4个参数依次为SEMMSL(每个用户拥有信号量最大数);SEMMNS(系统信号量最大数);SEMOPM(每次semopm系统调用操作数); SEMMNI(系统辛苦量集数最大数).Shmmax 最大共享内存,官方文档建议是内存的1/2,Shmmni 最小共享内存  4096KB.Shmall 所有内存大小 。

5,安装oracle补丁
# unzip p4198954_40_LINUX.zip
# rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm
# rpm -ivh compat-libcwait-2.1-1.i386.rpm
=======================================================
p4198954_40_LINUX.zip      (compat-oracle-rhel4-1.0-5.i386.rpm和compat-libcwait-2.0-2.i386.rpm 不打这个补丁在安装ORACLE时会报一大堆的错,找不到文件什么的)
==========================================================
# unzip p3006854_9204_LINUX.zip
# cd 3006854
# sh rhel3_pre_install.sh
=======================================================
p3006854_9204_LINUX.zip    (不打这个补丁在安装ORACLE时运行runInstaller.sh后图形界面出不来,没法安装)
==========================================================
三,开始安装Oracle9i
1,解压下载的安装文件:
gzip -dc ship_9204_linux_disk1.cpio.gz | cpio -div
gzip -dc ship_9204_linux_disk2.cpio.gz | cpio -div
gzip -dc ship_9204_linux_disk3.cpio.gz | cpio -div

解包和解压过程中,自动创建了3个包含安装文件的目录:
Disk1
Disk2
Disk3
--------------------
#xhost local:oracle  *在root下执行,解决xwindows不能启动,或者如入“xhost +”
--------------------
.以oracle用户登录系统,进行Oracle的安装:
$ cd Disk1
$ ./runInstaller过一会儿就会出现Oracle的安装界面
- Welcome Screen:       Click Next
- Inventory Location:   Click Next
- Unix Group Name:      Use "oinstall" and click Next
                         When asked to run /tmp/orainstRoot.sh, run it before you click Continue
- At the end of the installation, exit runInstaller.
2.Database Configuration 选择最后一项“Software Only”
3,安装完后打补丁:
切换到root:
# su – root 首先安装 opatch.
# unzip p2617419_220_GENERIC.zip
---------------------------------------------------------------------
# export PATH=$PATH:/inst/oracle9i/patch/OPatch:/sbin
---------------------------------------------------------------------
(修改PATH时要要包括解压缩出来的Opatch 和 sbin目录)
# unzip p3238244_9204_LINUX.zip
# cd 3238244
# export ORACLE_BASE=/opt/oracle
# export ORACLE_HOME=/opt/oracle/9i
# opatch apply
注意:运行前请关闭数据库和OUI
如果提示HOME变量错误可执行语句:
------------------------------------
#export ORACLE_BASE=/opt/oracle
#export ORACLE_HOME=/opt/oracle/9i
------------------------------------
出现success的提示就全部安装成功.

补丁打完后,还要relinked一个.mk文件,切换到oracle用户窗口
------------------------------------
cd $ORACLE_HOME/network/lib
make -f ins_oemagent.mk install
------------------------------------
之后就可以启动Agent服务了.
*安装9208补丁
# unzip p4547809_92080_LINUX.zip
# chown -R oracle.oinstall /usr/local/src/oracle9i/9208
以oracle身份安装9208补丁
#./runInstaller  *如果执行runInstaller,会出现安装9204的OUI
=================================================================================
现在在运行agentctl start,看是不是可以成功运行agent服务了啊,可以用stop、status来停止此服务或者检查服务的状态。 
在这个成功之后,居然不能启动Oracle,说是不能找到初始化文件,没办法,我用dbca先删除了原来安装时建立的库,再重新建立了数据库。 
=================================================================================
4, 最后执行 #dbca  建oracle数据库
点击OK,然后退出即可,正常登陆并启动数据库的操作。
[oracle@oracle oracle]$ lsnrctl start
[oracle@oracle oracle]$ sqlplus /nolog
SQL*Plus: Release 9.2.0.4.0 - Production on Sat Mar 12 22:58:53 2005
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
SQL>; connect / as sysdba
Connected.
SQL>; shutdown immediate  关闭数据库
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>; startup;   启动数据库
ORACLE instance started.
Total System Global Area  236000356 bytes
Fixed Size                   451684 bytes
Variable Size             201326592 bytes
Database Buffers           33554432 bytes
Redo Buffers                 667648 bytes
Database mounted.
Database opened.
5, 为了方便管理,可以写一个启动脚本ora9i:
以root身份进入,编写以下脚本:
#!/bin/bash
# start and stop the oracle instance
# chkconfig –level 5 --add ora9i
# chkconfig: 345 91 19
# description: starts the oracle listener and instance
export ORACLE_HOME="/opt/ora9/product/9.2.0.4"
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER="oracle"
export ORACLE_SID=oradb
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
    echo "oracle startup:cannot start"
    exit 1
fi
case "$1" in
start)
  #startup the listener and instance
    echo -n "oracle startup: "
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"
    su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbstart
    touch /var/lock/subsys/oracle
    echo "finished"
   ;;
stop)
# stop listener, apache and database
    echo -n "oracle shutdown:"
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"
    su - $ORACLE_OWNER -c $ORACLE_HOME/bin/dbshut
    rm -f /var/lock/subsys/oracle
    echo "finished"
;;
reload|restart)
    $0 stop
    $0 start
;;
*)
   echo "Usage: ora9i [start|stop|reload|restart]"
   exit 1
esac
exit 0
存为ora9i后,然后用chmod a+x ora9,即可在以后以root身份运行 /etc/rc.d/init.d/ora9i start |stop 来管理oracle的启动和停止了。如果要将这个脚本加入到系统中使其可开机运行(不过官方是不建议开机自动运行的),那么要运行以下命令: chkconfig --level 3(或者是5) --add ora9i
或者以root用户执行如下命令:
#cp /orasetup/ora9i /etc/rc.d/init.d/
#chmod a+x /etc/rc.d/init.d /ora9
#cd /etc/rc.d/rc5.d
#ln -s /etc/rc.d/init.d/ora9i S99ora9i
#cd /etc/rc.d/rc0.d
#ln -s /etc/rc.d/init.d/ora9i K99ora9i
也可自启动oracle9i!
或者可在/etc/rc.d/rc.local中加入如下:
su - oracle -c "/opt/ora9/oracle/product/9.2.0.4/bin/lsnrctl start"
su - oracle -c "/opt/ora9/oracle/product/9.2.0.4/bin/dbstart start"
6,
关于数据库删除重新安装的问题:
  把ORACLE安装目录删除及/etc/ora*.*删除就行了
#rm –f  /etc/ora*.*
ok了,现在一切也就差不多了,你已经可以建议自己的数据库:)