li
  当前位置:主页 > 配置管理 > 文章内容
li
安装篇推荐:oracle9i安装综合以及问题集锦(5)
来源: www.ixdba.net  作者: IXDBA.NET官方    时间:2007-12-17   阅读:38  
本文章共21475字,分6页,当前第5页,快速翻页:
 
) 过程中出现该错误。有人发邮件说下面的解决办法也可工

作在 Mandrake 8.1, Mandrake 8.2 SuSe 8.0 平台上。

编辑 $ORACLE_HOME/bin/genclntsh 和改变下面行的内容

LD_SELF_CONTAINED=“-z defs”

LD_SELF_CONTAINED=“”

之后使用 oracle 用户而不是 root 用户执行脚本 $ORACLE_HOME/bin/gen

IXDBA.NET技术社区

clntsh在这样做之前请确信 Oracle 环境已正确设置。

#su – oracle

$$ORACLE_HOME/bin/genclntsh

Created /opt/oracle/product/9.0.1/lib/libclntst9.a

$

在错误对话框,重试,将正确工作。

http://otn.oracle.com/software/products/oracle9i/files/binutils_readme.html 列出了 Red Hat Advanced Server 2.1 平台上 Oracle 9iR1 9iR1 iAS 的官方解决方案。

 

􀁺 Error in invoking target install of makefile

/opt/oracle/product/9.2.0/network/lib/ins_oemagent.mk

这个错误仅出现在 Red Hat 9 中。$ORACLE_HOME/install/make.log 文件包含以下

错误信息

/opt/oracle/product/9.2.0/network/lib/libnmi.a (snmitcln.o) (.text+0x159d) In

function “Nls_ScanCmd”undefined reference to “_ctype_b”

/opt/oracle/product/9.2.0/network/lib/libnmi.a (snmitcln.o) (.text+0x1603)more

undefined references to `__ctype_b' follow

这个错误是由于 Red Hat 使用新的本地模式 _ctype_b() 实际上去查找

_ctype_b_loc()。然而,在 libc.so 中,_ctype_b 仍然作为兼容符号输入;至少在 RH

9 glibc-2.3.2-5 中是这样。这就是为什么有人使用 Red Hat 9 会出现这个问题,而有

些人不出现的原因。

当你从商店买来 Red Hat 9 的光盘,你可能在第一张光盘中发现 glibc-2.3.2-5.i686.

rpm,这个版本的 glibc 输出 _ctype_b()

$rpm –ql glibc-2.3.2-5 | grep libc.so

/lib/i686/libc.so.6

/lib/libc.so.6

/lib/tls/libc.so.6

23

$nm –a /lib/i686/libc.so.6 | grep _ctype_b

001315f8 D _ctype_b

00022340 T _ctype_b_loc

$nm –a /lib/libc.so.6 | grep _ctype_b

00133c58 D _ctype_b

000223a0 T _ctype_b_loc

$

但是,当你从 redhat.com 或其它镜像网站下载 Red Hat 9,你会发现在这个镜像中是

glibc-2.3.2-11.9.i686.rpm 这个版本的 glibc 不输出 _ctype_b() 。这也是使用

glibc-devel-2.3.2-27.9.i386.rpm 的原因。

$rpm –ql glibc-2.3.2-11.9 | grep libc.so

/lib/i686/libc.so.6

/lib/libc.so.6

/lib/tls/libc.so.6

$nm –a /lib/i686/libc.so.6 | grep _ctype_b

00131718 D _ctype_b@GLIBC_2.0

000223A0 T _ctype_b_loc

$nm –a /lib/libc.so.6 | grep _ctype_b

00133d58 D _ctype_b@GLIBC_2.0

000223f0 T _ctype_b_loc

$

检查系统中的 glibc 版本

首先检查你的 RH 9 系统中 glibc 是否和 Oracle 安装器一起工作

$rpm –q glibc-2.3.2-5 glibc-common-2.3.2-5 glibc-devel-2.3.2-5

如果得到以下信息

package glibc-2.3.2-5 is not installed

package glibc-common-2.3.2-5 is not installed

package glibc-devel-2.3.2-5 is not intalled

说明系统中 glibc 没有安装无法和 Oracle 安装器一起工作需要从 Work Around

过程开始。

但是如果你的系统中安装了 glibc-2.3.2-5那么可以跳过 Work Around 过程。

Work Around 过程

因为不能从网上找到可下载的 glibc-2.3.2-5,所以我将它放在我的网站上了。这些

RPM 是从商店里购买的 RH 9 的第一张光盘上拷贝过来。因为 RH 9 有一些改变,

因此不推荐使用老 Red Hat 发行版的任何 compat 包。

下面是在 RH 9 服务器上临时安装 glibc-2.3.2-5 的过程:

24

(1) http://www.puschitz.com/rh9_gcs_download 下载 glibc-2.3.2-5

为避免有人改动过或替换过,检查下载的 RPM 包的摘要和签名。为了确保 RPM

的完整性,运行下面的命令:

$su – root

#rpm --import /usr/share/rhn/RPM-GPG-KEY

#rpm --checksig glibc-2.3.2-5-i686.rpm glibc-common-2.3.2-5.i386.rpm

glibc-2.3.2-5.i686.rpm(sha1) dsa sha1 md5 gpg OK

glibc-common-2.3.2-5.i386.rpm(sha1) dsa sha1 md5 gpg OK

#rpm --checksig glibc-devel-2.3.2-5.i386.rpm

glibc-devel-2.3.2-5.i386.rpm(sha1) dsa sha1 md5 gpg OK

(2) 降级 glibc, glibc-common, glibc-devel

#rpm –Uvh --oldpackage glibc-2.3.2-5.i686.rpm glibc-common-2.3.2-5.i386.rpm

#rpm –Uvh --oldpackage glibc-devel-2.3.2-5.i386.rpm

如果出现如下错误

errorFailed dependencies

glibc = 2.3.2-11.9 is needed by (installed) glibc-debug-2.3.2-11.9

glibc = 2.3.2-11.9 is needed by (installed) glibc-utils-2.3.2-11.9

glibc-devel = 2.3.2-11.9 is needed by (installed) glibc-debug-2.3.2-11.9

glibc-devel = 2.3.2-11.9 is needed by (installed) nptl-devel-2.3.2-11.9

为了解决这个问题,需要临时移除这些包,直到 Oracle 安装完成,升级 glibc 包之后,

再重新将安装这些包。

#rpm –e glibc-debug glibc-utils nptl-devel

现在,再次运行 runInstaller

Oracle 成功安装之后,升级 glibc, glibc-common glibc-devel,例如:

#rpm –Uvh glibc-2.3.2-11.9.i686.rpm glibc-common-2.3.2-11.9.i386.rpm

#rpm –Uvh glibc-devel-2.3.2-11.9.i386.rpm

Red Hat Linux 由于二进制文件和发行的共享库因此其兼容性总是有保障的

但不是因为 .o .a 文件。然而 .o .a 文件兼容性也是有保证的。因为

glibc-2.3.2-5 glibc-2.3.2-11.9 是从同一发行版演变而来因此由其生成的 .o

(Oracle .o 文件是在 Oracle 安装过程中建立的) .a 文件是兼容的。这意味着

Oracle 成功安装之后,升级 glibcOracle 仍能正常运行。

(According to Red Hat, binary compatibility in Red Hat Linux is always guaranteed

for binaries and shared libraries across releases, but not for .o files nor .a files.

However, compatibility is guaranteed for .o files and .a files. _within_a release. Since

glibc-2.3.2-5 and glibc-2.3.2-11.9 are from the same release, compatibility should be

guaranteed for .o files – Oracle’s .o files which have been created during the Oracle

installation) and .a files. This means that Oracle should be fine when you upgrade

glibc after the Oracle intallation.)

 

􀁺 $dbca

SIGSEGV 11* segmentation violation

stackbase=0x453da000, stackpoint=0x453d9d5c

Full thread dump

“AWT-EventQueue-0” (TID 0x411d1e20, sys_thread_t 0x453d9d5c,

state:R) prio=5 * current thread*

java.lang.Object.wait (Object.java)

java.awt.EventQueue.getNextEvent (EventQueue.java126)

Red Hat 8.0 Red Hat 9 平台上 dbca 崩溃时得到上述内容。如果发生

以尝试下面的方法

$su – root

#touch /etc/rac_on

现在可以重新启动 dbca

另一个解决办法是编辑 $ORACLE_HOME/bin/dbca 文件将下面列出的除第 3

外的其余行注释掉。

#if [ -f /etc/rac_on ]; then

#Run DBCA

$JRE_DIR/bin/jre –native –DORACLE_HOME=$OH……

#else

#Run DBCA

#$JRE_DIR/bin/jre –DORACLE_HOME=$OH……

#fi

重新启动 dbca

 

􀁺 ./runInstallerline 58./runInstallercannot execute binary file.

这可能是在 32 位版 Linux 系统上安装 64 位版 Oracle 引起的。确信为你的 Linux

系统下载了正确的 Oracle 版本。

运行下面的命令可以检验 runInstaller 32 位版还是64 位版的

$cd /mnt/cdrom

$file install/linux/runInstaller

install/linux/runInstallerELF 32-bit LSB executable, Intel 80386, version 1(SYSV),

for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped

运行下面的命令,可以检验 Linux 系统是32 位版还是64 位版的:

$file /sbin/init

/sbin/initELF 32-bit LSB execute, Intel 80386, version 1 (SYSV) for GNU/Linux

2.2.5, dynamically linked (uses shared libs), not stripped

 

􀁺 The Oracle installer runInstaller hangs atInstalling Java Runtime

Environment... Link pending... Copying README...

这个问题仅在 RH 9 中出现没有设置环境变量 LD_ASSUME_KERNEL = 2.4.1

运行下面的命令并重新运行 runInstaller可以修正这个错误

$export LD_ASSUME_KERNEL=2.4.1

 

􀁺 Can’t find init file for Database “SID”