red hat linux 9.0下安装oracle 8.1.7

首先准备以下文件:

Linux 操作系统:  Red Hat Linux 9.0;

oracle 8.1.7.0安装包: oracle817.tar.gz

低版本gcc:  i386-glibc-2.1-linux.tar.gz

低版本binutils:  binutils-2.10.91.0.2-3.i386.rpm

高版本binutils:  binutils-2.13.90.0.18-9.i386.rpm

补丁包:   glibc-2.1.3-stubs.tar.gz

jdk:   j2sdk-1_4_2-linux-i586.bin

1、首先安装linux 9.0,其中注意swap分区大小为内存的8倍左右,libstdc的开发包必须安装;注意,
安装系统时保证有图形化界面;如果不希望有图形化界面,请保证至少有一台客户端安装有图形化界面;
这样就可以进行Oracle的远程安装;

2、在linux根分区下建立/software目录;将i386-glibc-2.1-linux.tar.gz、binutils-2.10.91.0.2-3.i386.rpm、
glibc-2.1.3-stubs.tar.gz、j2sdk-1_4_2-linux-i586.bin拷过去;

3、安装jdk
# cp /software/j2sdk-1_4_2-linux-i586.bin /usr/local/
# cd /usr/local
# sh j2sdk-1_4_2-linux-i586.bin
# ln -s /usr/j2sdk1.4.2 /usr/local/java

4、备份gcc、cc、ld(用低版本的gcc来安装oracle,安装完成后恢复linux 9自带的gcc)
# cd /usr/bin
# mkdir saved
# mv gcc cc ld ./saved

5、隐藏libc.so libdl.so libm.so libpthread.so及libc.a libdl.a libm.a libpthread.a(避免oracleinstall找到这些文件)
# cd /usr/lib
# mkdir saved
# mv libc.so libdl.so libm.so libpthread.so saved
# mv libc.a libdl.a libm.a libpthread.a saved

6、安装gcc
# cp /software/i386-glibc-2.1-linux.tar.gz /
# cd /
# tar zxvf i386-glibc-2.1-linux.tar.gz
# cd /usr/bin
# ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-gcc gcc
# ln -s gcc cc
# ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld ld

7、安装Binutils。Red Hat Linux 9.0的Binutils包的版本较高,在安装Oracle 8i时会导致编译错误。这里将Binutils降级,在安装时带上参数force(强制安装)、nodeps(取消依赖性)。卸载系统的binutils 包,代码如下:
# rpm -e -- force -nodeps binutils-2.13.90.0.18-9.i386.rpm
# cd /software
# rpm -ivh --force --nodeps binutils-2.10.91.0.2-3.i386.rpm
注:此步完成后/usr/bin/ld由链接改成非链接需执行下一步
# cd /usr/bin
# ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld ld


8、创建用户和组
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle (默认目录是/home/oracle)
passwd oracle
chown -R oracle.dba /home/oracle
chmod 750 /home/oracle

9、修改环境变量
vi /home/oracle/.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 PATH
unset USERNAME
umask 022
export EDITOR=vi
export TERM=xterm
export TMPDIR=/tmp

# Setup installation environment
export ORACLE_SID=orcl
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/i386-glibc-2.1-linux/i386-glibc-linux/lib:/lib:/usr/lib:/lib:/usr/local/lib
export SHLIB_PATH=$ORACLE_HOME/lib:/usr/lib:/lib:/usr/local/lib
export LIBPATH=$ORACLE_HOME/lib:/usr/lib:/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
export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/
export LD_ASSUME_KERNEL=2.4
export JAVA_HOME=/usr/local/java
export CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip:$ORACLE_HOME/JRE:$ORACLE_H
OME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:.
export PATH=$PATH:$ORACLE_HOME/bin

10、开始安装
# su - oracle
$ export LANG=en
$ startx
在xwindow下面打开一个终端窗口
$ cd /software
$ tar zxvf oracle817.tar.gz
$ cd Disk1
$ ./runInstaller

11、进入安装
a、在接下来出现的基于Java的Oracle installer界面上,点击“Next”按钮

b、File Locations界面中,检查安装目录(Destination Path)是否为为"/home/Oracle/product/8.1.7",确认后点击"Next"

c、在要求输入Unix Group Name的界面,键入"oinstall",点击"Next"

d、在上一步完成后,Oracle安装程序会弹出一个窗口,要求以root身份运行"/home/Oracle/product/8.1.7/orainstRoot.sh";
  此时,新建一个终端窗口,用root用户身份运行此脚本,代码如下:
  $ su
  # cd /home/oracle/product/8.1.7
  # ./orainstRoot.sh
  执行完脚本后,返回弹出的窗口,点击“Retry”,即可进入后续安装;

注:若曾经顺利完成过c d两步;第二次再进行安装时不会进入这两步;

e、在出现的“Available products”窗口上选择“Oracle8I enterprise edition8.1.7.0.0”,并点击"Next";

f、在接下来的画面中选择“Typical”,点击"Next";

g、提示输入“global database name”时,填写"ora8I",验证Oracle_SID为"ora8i",点击"Next";

h、系统提示输入数据文件存放位置(db files localtion),输入"/home/Oracle/DB",点击"Next";

i、系统提示选择java的位置,保证目录为"/usr/local/java",点击"next";

k、在最后的Summary窗口上,点击"Install";

l、在文件被拷贝和链接后,弹出一个窗口,要求以root运行root.sh脚本;
  此时,切换到前面新建的终端窗口,以root用户运行"/home/Oracle/product/8.1.7/root.sh”脚本;
  使用"./root.sh"命令运行此脚本时,在询问"local bin directory"时,按下Enter键(采用默认路径);
  执行后,返回弹出的窗口,点击"OK"即可;

m、这一步最为关键。安装程序会询问是否执行“Net8典型配置”。
  此时,以Oracle用户将“glibc-2.1.3-stubs.tar.gz”解压到“/opt/Oracle/product/8.1.7/”目录下,代码如下:
  $ cd /software
  $ cp glibc-2.1.3-stubs.tar.gz /home/oracle/product/8.1.7
  $ cd /home/oracle/product/8.1.7/
  $ tar zxvf glibc-2.1.3-stubs.tar.gz
  $ ./setup_stubs.sh
  这个过程主要是对Oracle中相关文件进行重新链接编译,大概需要5分钟左右;
  成功执行后,返回安装窗口,选中典型配置复选框,点击"Next";

n、安装程序安装配置Net8、Database、Intelligent Agent及HTTP;
在安装Oracle数据库时,安装程序会自动启动Oracle Database Configuration Assistants,进入创建数据库过程;
(在vmware下面进行此步时可能会卡住,我暂时也没发现什么原因,碰到这种情况时直接杀掉配置程序进入下一步,若未卡住则安装完成)

o、创建数据库
  dbassist进入界面选择创建数据库;定制;多用途;下一步;共享服务器模式;去掉所有选项(创建JServer的时间巨长);
  设置全局数据库名和SID,假设全局数据库名为ora8I,SID 为ora8i;
  更改字符集:字符集为UTF8、国家字符集为ZHS16GBK;一直下一步;完成;

p、配置net8
  netca进入配置界面,使用netca是因为netasst总是没有反应,让我们鄙视它吧;
  选择监听程序配置;添加;监听程序名使用默认的 LISTENER;一直下一步;完成;

12、恢复软件

$ su
# rpm -e --nodeps binutils-2.10.91.0.2-3.i386
# cd /software
# rpm -ivh binutils-2.13.90.0.18-9.i386.rpm

# cd /usr/bin
# rm gcc cc ld
# mv ./saved/* .
# rmdir saved
# cd /usr/lib
# mv ./saved/* .
# rmdir saved

然后把oracle用户环境变量LD_LIBRARY_PATH中的glibc的部分删去

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/i386-glibc-2.1-linux/i386-glibc-linux/lib:/lib:/usr/lib:/lib:/usr/local/lib
改为
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/lib:/usr/local/lib

13、配置文件
手工启动数据库和监听
# vi /etc/oratab
把最后的N改成Y;

14、设置服务
# cd /etc/init.d
# vi oracle
/***********************************内容开始***********************************/
#!/bin/bash
#
# Startup script for Oracle and listener
#
# chkconfig: 35 99 1
# description: Oracle 8.1.7.0.1

# Setup environment for script execution.
. /oracle/.bash_profile

case "" in
  start)
        echo "Starting Oracle database(s) listed in /etc/oratab ..."
        sleep 2
        su - oracle -c "$ORACLE_HOME/bin/dbstart"
        echo "Starting TNS listener..."
        sleep 2
        su - oracle -c "$ORACLE_HOME/bin/lsnrctl start"
        touch /var/lock/subsys/oracle
        ;;
  stop)
        echo "Stopping TNS listener..."
        sleep 2
        su - oracle -c "$ORACLE_HOME/bin/lsnrctl stop"
        echo "Stopping Oracle databases(s) listed in /etc/oratab ..."
        sleep 2
        su - oracle -c "$ORACLE_HOME/bin/dbshut"
        rm -f /var/lock/subsys/oracle
        ;;
  status)
        ps -ax | grep -e ora_ -e tnslsnr
        ;;
  *)
        echo "Usage: oracle "
        exit 1
esac

exit 0
/***********************************内容结束***********************************/
# chmod 700 /etc/init.d/oracle
# /sbin/chkconfig --add oracle

接下来就可以使用启动脚本启动和关闭
# /etc/init.d/oracle start
# /etc/init.d/oracle stop

16、简单应用

安装Oracle后,可以用其提供的命令来进行相关管理与操作。下面介绍几个常用的命令。
  启动数据库:dbstart
  关闭数据库:dbshut
  数据库监听的启动与关闭
  启动监听:lsnrctl start
  关闭监听:lsnrctl stop
  数据库的创建与删除:dbassist
  监听配置:netassist、netca
  管理界面:oemapp dbastudio
  连接管理cmctl
  启动连接管理:cmctl start
  关闭连接管理:cmctl stop
  数据导入与导出
  数据导入:imp
  数据导出:exp