在RHEL4下安装oracle8.1.7

Writen by HPLJ@2007.12.4

1. 所需软件

compat-egcs-6.2-1.1.2.16.i386.rpm

compat-egcs-c++-6.2-1.1.2.16.i386.rpm  

compat-egcs-objc-6.2-1.1.2.16.i386.rpm

compat-glibc-6.2-2.1.3.2.i386.rpm

compat-libs-6.2-3.i386.rpm

compat-libstdc++-6.2-2.9.0.16.i386.rpm

glibc-2.1.3-stubs.tar.gz

jdk118_v3-glibc-2.1.3.tar.bz2

ORACLE817_LINUX_I386

i386-glibc-2.1-linux.tar.gz

2. 这些是很老的rpm,安装它们以便于Oracle 8.1.7兼容。(其实也可以用更高一点版本的,比如7.3下的rpm,可能会让系统不太稳定),建议去google的英文网站去找,直接输入该软件的名字就可以了,在中文google可能都找不到的。

rpm -Uvh --force --nodeps compat-egcs-6.2-1.1.2.16.i386.rpm

rpm -Uvh --force --nodeps compat-egcs-c++-6.2-1.1.2.16.i386.rpm

rpm -Uvh --force --nodeps compat-egcs-objc-6.2-1.1.2.16.i386.rpm

rpm -Uvh --force --nodeps compat-glibc-6.2-2.1.3.2.i386.rpm

rpm -Uvh --force --nodeps compat-libs-6.2-3.i386.rpm

rpm -Uvh --force --nodeps compat-libstdc++-6.2-2.9.0.16.i386.rpm

3. 这个很关键,因为这里的gcc/ld是安装成功的关键(也有备选方案,比如用7.3下的gcc269等)

cp i386-glibc-2.1-linux.tar.gz /

tar zxvf i386.glibc-2.1-linux.tar.gz

cd /usr/bin   #降低gcc的版本,否则oracle无法成功安装的

mkdir saved

mv gcc cc ld saved

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

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

5.JDK使用118的,或使用了jdk118_v1也没有问题

cp jdk118_v3-glibc-2.1.3.tar.bz2 /usr/local

tar jxvf jdk118_v3-glibc-2.1.3.tar.bz2

ln -s /usr/local/jdk118_v3 /usr/local/java

rm jdk118_v3-glibc-2.1.3.tar.bz2

6. groupadd dba

groupadd oinstall

useradd -d /opt/oracle -g dba -G oinstall oracle

passwd oracle

chown -R oracle:dba /opt/oracle

chmod 750 /opt/oracle

7. 修改 /etc/sysctl.conf

kernel.shmmax=2621444000

kernel.shmmni = 4096

kernel.shmall = 2097152

kernel.sem = 250 32000 100 128

reboot

8. su oracle

.bash_profile

export JAVA_HOME=/usr/local/java

export LD_ASSUME_KERNEL=2.4

export ORACLE_BASE=/data/oracle817

export ORACLE_HOME=/data/oracle817/

export NLS_LANG=american_america.ZHS16GBK

export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export ORACLE_SID=jjmis

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib

export PATH=$PATH:$ORACLE_HOME/bin

export CLASSPATH=.:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export  CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib

export PATH=$PATH:$JAVA_HOME/bin

9.install

下面的一些问题在我安装时没有都出现,我只要执行root.sh,因为前面有安装过,所以有些脚本不用再次执行。

su root

cp glibc-2.1.3-stubs.tar.gz to /tmp

cd /data/oracle817

tar xvzf /tmp/ glibc-2.1.3-stubs.tar.gz

./setup_stubs.sh

************************************

如果出现错误提示: Error in invoking target relink of makefile

/data/oracle817/precomp/lib/ins_precomp.mk

检查/usr/bin/ld的链接

************************************

10. 修改/data/oracle817/ctx/lib/env_ctx.mk :

cd /data/oracle817/ctx/lib

vi env_ctx.mk 修改第1374行

CTXHX_LINKLINE=$(LINK) $(CTXLIB)ctxhx.$(OBJ_EXT) $(INSO_LINK) $(USRLIBS)

改为

CTXHX_LINKLINE=$(LINK) $(CTXLIB)ctxhx.$(OBJ_EXT) $(INSO_LINK) $(USRLIBS) -ldl

11. 修改/data/oracle817/root.sh :

cd /data/oracle817

vi root.sh

a. 修改第98行 SED=/usr/local/bin/sed 改为 SED=/bin/sed

b. 修改第102行 RMF=/bin/rm –f 改为 RMF="/bin/rm -f"

c. 修改第156行 RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}`

改为 RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'`

12. run root.sh

13.配置比较慢

14. dbassist  创建数据库

**********************************

启动dbassist时,若弹出以下错误信息

ibnldapj8.so: cannot open shared object file: Permission denied (libnldapj8.so)

java.lang.UnsatisfiedLinkError: no nldapj8 in shared library path

在安装光盘的path目录下找到这个文件 拷贝该文件

cp ./Disk1/patch/bug1542738/libnldapj8.so /usr/lib

cp ./Disk1/patch/bug1542738/libnldapj8.so /usr/local/oracle/product/8.1.7/lib/

将全部权限授予该文件

chmod -R 777 /data/oracle817/lib/libnldapj8.so

************************************

sqlplus / nolog

conn / as sysdba

安装补丁8.1.7.4,按照文档做即可,基本不会出现以外

最后建议将步骤3中的

Gcc/gc/ld都恢复为原来的设定。

#mv /usr/bin/saved/* /usr/bin/