Redhat Linux 9.0 下面 成功安装 oracle8i 8.1.7

Redhat Linux 9.0 下面 成功安装 oracle8i 8.1.7

参考了网上很多贴子,安装总是不行,经过两次重装linux,无数次安装oracle8i终于安装成功,并总结出以下安装步骤。这个安装步骤是我安装好以后写的,之后没有一步一步按这个文档重新安装测试。本人第一次写文章,请大家参考指正。




准备文件

* 企业版oracle8i R3 8.1.7
linux81701.tar

* redhat 6.2兼容包
compat-libs-6.2-3.i386.rpm
compat-glibc-6.2-2.1.3.2.i386.rpm
compat-egcs-6.2-1.1.2.16.i386.rpm

* binutils
binutils-2.13.90.0.2-2.i386.rpm (redhat linux 8.0)我安装时用的这个

binutils-2.11.93.0.2-11.i386.rpm (redhat linux 7.3)

* oracle官方站点上放出的补丁
glibc-2.1.3-stubs.tar.gz


关于binutils的说明:
oracle的文件请到oracle官方站点下载,redhat兼容包和binutils请到redhat官方站下载,据我研究下来,相信最新的linux81701.tar文件,oracle是用了较新的ld重新编译过,所以binutils要用redhat linux 8.0或7.3带的,只有这两个版本的binutils的ld既支持elf_i386_glibc21又同时支持--eh-frame-header链接选项,因为安装时编译.mk文件出错好多都是因为ld不支持--eh-frame-hdr这个参数。


把前面的文件放到一个目录下,如/orafile。


下面要用root身份的来做:

安装兼容包:
cd /orafile
rpm -Uvh  --nodeps --force compat*
rpm -qa | grep compat 看看安装上了没有

先卸载然后安装binutils,
rpm -e --nodeps binutils
rpm -Uvh --force --nodeps binutils*

添加oracle用户及oracledba组(也可以用图形界面做)
groupadd oracledba
useradd -g oracledba -G oracledba oracle
passwd oracle


现在注消一下,用oracle帐号登录,我们来建立目录和设置环境变量:

根据需要建立oracle的安装目录,
我把oracle安装到/home/oracle/product/8.1.7目录,
cd /home/oracle
mkdir -p product/8.1.7

编辑在/home/oracle/.bash_profile文件最后增加如下几行或直接拷贝oracle.bash_profile。

# begin of specific environment for oracle8i 8.1.7

#export JAVA_HOME=/usr/local/java

# if no this line, the runInstaller will no response
export LD_ASSUME_KERNEL=2.2.5

#export LDEMULATION=elf_i386_glibc21
#export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/
#the above two lines equal to the following line
source /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh

export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
export PATH=$PATHORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
#the following line should be set after finished install and create the database SID
#export ORACLE_SID=oradb
export NLS_LANG="SIMPLIFIED CHINESE"_CHINA.ZHS16CGB231280
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

#end of specific environment for oracle8i 8.1.7


保存以后退出,完全注销,重新启动X Window,如果不注销,则X Window的环境将是老的环境,这样的话,用图形环境启动runInstaller就不对了,所以干脆注销再登录。
用env命令察看一下变量是否已经设置正确
运行ld -v 察看ld的版本运行 ld --help 确定支持elf_i386_glibc21和--eh-frame-header。

至此,准备工作完成。



开始安装。

oracle用户登录后,启动X Window

运行runInstaller开始安装。
注意,runInstaller没反应的另一种情况是oracle用户不具有运行它的权限,用root用户修改权限即可。


按照提示安装,过一会oracle会提示你要用root身份运行orainstRoot.sh文件
用root登录或su,
cd $ORACLE_HOME
./orainstRoot.sh


在选择安装类型的时候最好选Custom,Typical会导致创建数据库失败。
因为Custom安装会提示你是否要用该向导来创建一个数据库,我们可以选否来避免建库失败。等安装完打过补丁再用dbassist建库。

组件选择,一般建议不要安装,HTTPserver, Oracle Products Options, Java Products, 和Development Tools,如果没有必要的话建议不要安装Jserver,不过安装时好像去不掉。


文件copy结束后编译时到65%的时候会提示ins_precomp.mk文件出错,点Ignore就行了,然后一个一个的其他.mk文件也都有编译错误,全部Ignore,稍后我们用补丁对它们进行修正。

然后会提示让你运行root.sh,用root登录或su都可以
cd $ORACLE_HOME

先不要急着运行root.sh,因为文件有两个错误,
在第多少行是不确定的,因为不同的安装选项,root.sh的内容不同。

RMF=/bin/rm -f   改为
RMF="/bin/rm -f"
RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}`  改为
RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'`
保存后运行。
./root.sh

点击OK,然后会进入Net8的配置界面,根据提示配制,安装就结束了。
退出oracle universal installer。

安装结束。



下面开始打补丁(oracle用户)

cd /orafile
tar zxvf glibc-2.1.3-stubs.tar.gz -C $ORACLE_HOME
cd $ORACLE_HOME

setup_stubs.sh 也有bug,先修改,在85行

make -i -f $file relink >/dev/null 2>&1
修改为
make -i -f $file relink EXENAME=ott >/dev/null 2>&1
然后运行
./setup_stubs.sh

打补丁时ins_net_server.mk的编译其实是没有通过的,因为setup_stubs.sh运行时把输出重定向到/dev/null,所以没人能看到出错信息。我是把编译输出重定向到文件中,所以才知道这个错误。
错误是在link时有几个外部变量引用没有找到,这个问题我没解决掉。影响的文件是$ORACLE_HOME/bin/下的lsnrctl,ilsnrctl,tnslsnr,itnslsnr这些文件被改成了文件名后面加了个字母O,不过万幸的是这些加了O的老的文件是好的只需将他们名字改回原来的即可,也就是将O去掉,哈哈。



下面我们来建数据库,

dbassist

一个图形化的界面,根据提示进行选择就可以了,注意设置ORACLE_SID,
在本例中ORACLE_SID是oradb应该和数据库的名字一样。


数据库建立完毕,再编辑一下.bash_profile把ORACLE_SID加进去。



最后的配置

为以后使用方便需要修改/etc/oratab文件,把后面的N改成Y,改完后像这样就可以了:
*:/home/oracle/product/8.1.7:Y
你的SID:/home/oracle/product/8.1.7:Y
这样以后运行dbstart时,数据库将自动启动。


如果希望linux启动时数据库也自动启动,如下设置, (root用户)
修改/etc/rc.local文件加入两行:

su --login oracle -c 'lsnrctl start'
su --login oracle -c 'dbstart'


至此,已经在Redhat Linux 9.0上面成功安装了oracle8i R3 8.1.7,基本上做到了零错误安装。      
:rolleyes: 也没有人说不好,也没有人说好,就没个人评价一下?
难道没人在redhat9上面安装oracle8i吗?      
9.0 安装好了,
用了半个小时,
就格掉重装 8.0 了,
服务器用的是 RH Advance server 2.1 ,
凭感觉,
它比 7.2 要快很多,运行快,
安装 Oracle 也要比 7.2 快的多,
一个字,爽
有机会大家不防试试这个 Advance server ,
真的很不错的,      
我更郁闷。折腾了一个星期在rh9上面没有装上 oracle 817
今早刚刚换了 rh8,然后上来就看到你发了这个帖子。

这不是要我跳楼吗?      
你的安装说明写的不错,

不过我想问一个问题,
好几次,
安装完了,
$ dbassist 的时候,
N 久也没反应,
这是怎么回事?      
这个问题我也碰到过的,
好像是因为

打补丁时ins_net_server.mk的编译其实是没有通过的,因为setup_stubs.sh运行时把输出重定向到/dev/null,所以没人能看到出错信息。我是把编译输出重定向到文件中,所以才知道这个错误。
错误是在link时有几个外部变量引用没有找到,这个问题我没解决掉。

影响的文件是$ORACLE_HOME/bin/下的lsnrctl,ilsnrctl,tnslsnr,itnslsnr
这些文件被改成了文件名后面加了个字母O,

解决方法:
这些加了O的老的文件是好的,只需将他们名字改回原来的即可,也就是将O去掉。


试试看吧,如果其他地方没有错误,唯一的就是这个原因了。

另外,能说一下Redhat Advanced Server 和 redhat linux 有什么区别、有什么优势?支持各种新硬件支持的好吗?我没能找到比较详细的介绍。

因为我现在开发服务器用的redhat9,但商用服务器想用AS,有什么使用心得写一点出来吧。先谢谢了。      
真是同情你啊。我就是希望象你这样的悲剧以后少重演,像我这样特别不爱写文章的人,在经历了oracle8i安装的千辛万苦之后才下定决心写了这个文章。

说真的,我安装时,是使劲地骂oracle,安装都bug一大堆,唉。并且我想不通连安装都这么难的东西怎么那么多人推崇。:eek:      
我也是折腾了一个星期没装好,刚把7。2装上,就看到了这个帖子。。      
能否把你那些需要下载的东西 的网址告诉我?

打算周末装个linux,以及oracle      
* 企业版oracle8i R3 8.1.7
linux81701.tar
* oracle官方站点上放出的补丁
glibc-2.1.3-stubs.tar.gz

到这里下载,好像要先免费注册会员的。
http://otn.oracle.com/global/cn/ ... acle8i/content.html



下面的到ftp.redhat.com /pub/redhat/linux
有linux的各个版本,从1.0到9.0
* redhat 6.2兼容包 是从7.2里取的
compat-libs-6.2-3.i386.rpm
compat-glibc-6.2-2.1.3.2.i386.rpm
compat-egcs-6.2-1.1.2.16.i386.rpm
* binutils 从8.0里取
binutils-2.13.90.0.2-2.i386.rpm (redhat linux 8.0)我安装时用的这个