Oracle 9i 9.2.0.4 linux i386 安装:闲来尝试:各种问题、及解决

值得赞扬的是:9i的安装挺简单,包依赖很少,仅仅需要最最基本的编译环境即可。

 

问题 1: 下载9i的安装介质,挺费劲。网上下载的基本都是通过迅雷,但是一没资源,二下载到包都是损坏的

解决 1:充迅雷会员! 找百度网盘资源!找CSDN下载资源。

 

问题 2:新版的redhat系 linux 6 很多老的rpm包都已经废弃删除了。老版本的 linux 5系也都是高版本了。无法安装!

解决 2.1:使用老版本的 3系、4系 linux。

解决 2.2:单独下载老版本的rpm包,在 5系、6系上单独安装。必要的rpm包就2个:

             compat-gcc-32-3.2.3-47.3.i386.rpm

             compat-libstdc++-296-2.96-132.7.2.i386.rpm(如果不是此类低版本,需要做个软连接,原因是问题3中的 “libstdc++-libc6.1-1.so.2”)

             附件: “libcwait.so”

 

问题 3:9i安装成的java版本实在是太低了,对运行库由特定版本“libstdc++-libc6.1-1.so.2”有要求,还有个bug:p3006854。

解决 3: 做个软连接;并利用LD_PRELOAD原理来解决p3006854BUG!

[root@bogon oracle]# ln -s /usr/lib/libstdc++-libc6.2-2.so.3 /usr/lib/libstdc++-libc6.1-1.so.2
[root@bogon oracle]# cat p3006854_9204_linux_rhel3_pre_install.sh #!/bin/bash cat << EOF | #include <errno.h> #include <sys/syscall.h> #include <sys/types.h> #include <sys/wait.h> pid_t __libc_wait (int *status) { int res; asm volatile ("pushl %%ebx\n\t" "movl %2, %%ebx\n\t" "movl %1, %%eax\n\t" "int \$0x80\n\t" "popl %%ebx" : "=a" (res) : "i" (__NR_wait4), "0" (WAIT_ANY), "c" (status), "d" (0), "S" (0)); return res; } EOF gcc -O2 -shared -fpic -xc - -o libcwait.so echo "/etc/libcwait.so" >>/etc/ld.so.preload echo "Patch successfully applied"

 

附件:编译好的 “libcwait.so

 

问题 4:这个“问题3”中的bug p3006854,oracle的做法不算完美!会影响linux系统本身的运行

解决 4:我给出的完美解决方案是:

              首先,改写下bug p3006854的修正脚本源代码文件,只留核心编译,生成文件“libcwait.so”,但是不入侵系统的配置文件“/etc/ld.so.preload”

              然后,调用runInstaller方式略微改变如:[oracle@bogon mnt]$ LD_PRELOAD=/home/oracle/libcwait.so    Disk1/runInstaller

 

问题 5:默认调用“Disk1/runInstaller”执行图形安装,会失败。因为oracle 数据库的默认创建位置是 “/oradata”

解决 5:在root用户下创建目录并修改目录的权限(所有者)

            [root@bogon bin]# mkdir /oradata

            [root@bogon bin]# chown oracle:oracle /oradata

 

问题 6:升级9i到 9.2.0.8后,会造成${ORACLE_HOME}/JRE的软连接失效!

解决 6 :重新创建JRE软连接到${ORACLE_HOME}/jre/1.4.2

 

问题 7:升级9i到 9.2.0.8后,会造成dbca\netca等调用java的程序失败。原因是它们使用jre来调用java,升级后根本就不存在jre了,已经变成规范的java。

解决 7 :重新创建jre/bin下的jre符号链接指向java

 

问题 8 :升级p4547809_92080_LINUX,会弹出不支持的操作系统!! 垃圾,安装原始版的时候怎么不检查呢?!!!

解决 8:让安装程序忽略操作系统检查即可。

              [oracle@bogon ~]$ /mnt/p4547809_92080_LINUX/Disk1/runInstaller -ignoreSysPrereqs

 

其他,待续 ...

 

posted on 2021-01-29 14:48  jinzhenshui  阅读(251)  评论(0编辑  收藏  举报