本space搜集和整理各种环境下的Oracle 安装与参数调整和设置技术文章

安装篇推荐:oracle9i安装综合以及问题集锦(5)

上一篇 / 下一篇  2008-07-18 14:10:49 / 个人分类:Oracle9i安装

) 过程中出现该错误。有人发邮件说下面的解决办法也可工

作在 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

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

如果出现如下错误:

error:Failed 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 成功安装之后,升级 glibc,Oracle 仍能正常运行。

(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.java:126)

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。

 

􀁺 ./runInstaller:line 58:./runInstaller:cannot execute binary file.

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

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

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

$cd /mnt/cdrom

$file install/linux/runInstaller

install/linux/runInstaller:ELF 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/init:ELF 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 at:Installing 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”

当我使用 dbstart 启动数据库时,出现这个错误。

将 SID(如 test)的初始化文件,从 /opt/oracle/admin/test/pfile 目录拷贝至

$ORACLE_HOME/dbs 目录,以使 dbstart 和 dbshut 能够正常工作:

cp /opt/oracle/admin/test/pfile/inittest.ora.642 $ORACLE_HOME/dbs/inittest.ora

 

􀁺 Error in setting permissions of file/directory

/opt/oracle/jre/1.1.8/bin/i686/native_threads/.extract_args

如果没有刻录光盘,可能会产生该问题。

刻录光盘或者从镜像文件中拷贝 .extract_args 文件至 runInstaller 报错的位置。

 

􀁺 jre was not found in /tmp/OraInstall/jre/bin/i586/green_threads/jre

可能运行在一台 586 机器或与 586 兼容 AMD CPU (如 AMD K6-III-400)。可以运

行 uname –m 命令检查机器(硬件)类型。如果不是运行在 586 或 AMD 机器上,

试着链接 jre 至 java,以解决该问题。

为在 586 或 AMD CPU 的机器上调整该问题,为


TAG: oracle9i 安装 问题

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-12-05  
 123456
78910111213
14151617181920
21222324252627
28293031   

我的存档

数据统计

  • 访问量: 6042
  • 日志数: 253
  • 建立时间: 2008-07-08
  • 更新时间: 2008-07-28

RSS订阅

Open Toolbar