欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle笔记:dbca出错C [libnnz11.so+0x3c3a8]

程序员文章站 2022-05-07 17:45:17
...

客户装好了Oracle,安装成功了,但是运行dbca和netca都出现错误。[oracle@db1 ~]$ netcaOracle Net Services Configuration:## A

客户装好了Oracle,安装成功了,但是运行dbca和netca都出现错误。
[oracle@db1 ~]$ netca

Oracle Net Services Configuration:
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0xa44b13a8, pid=2973, tid=3086891216
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_17-b02 mixed mode)
# Problematic frame:
# C [libnnz11.so+0x3c3a8]
#
# An error report file with more information is saved as hs_err_pid2973.log
#
# If you would like to submit a bug report, please visit:
#
#
/u01/app/oracle/product/11.2.0/dbhome_1/bin/netca: line 178: 2973 Aborted $JRE $JRE_OPTIONS -classpath $CLASSPATH oracle.net.ca.NetCA $*

客户机环境
OS: RHEL AS 4 (32bit)
Oracle: Oracle 11g release 2(11.2.0.1)

很明显是JVM导致的问题。

查看hs_err_pid2973.log
里面是JVM的error stack

Stack: [0xbf8b5000,0xbfab5000), sp=0xbfab01d8, free space=2028k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libnnz11.so+0x3c3a8]

[error occurred during error reporting, step 120, id 0xb]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j oracle.ldap.util.discovery.DiscoveryHelper.ldapDiscover(ILjava/util/Hashtable;Ljava/util/HashMap;)I+0
j oracle.ldap.util.discovery.DiscoveryHelper.discover(Ljava/util/HashMap;)I+9
j oracle.net.config.Config.discoverLdapConfig()V+42
j oracle.net.config.Config.(Ljava/lang/String;I[Ljava/lang/String;)V+55
j oracle.sysman.assistants.util.NetworkUtils.(Ljava/lang/String;)V+17
j oracle.sysman.assistants.util.step.StepContext.(Ljava/lang/String;)V+128
j oracle.sysman.assistants.dbca.backend.Host.(Ljava/lang/String;Loracle/sysman/assistants/dbca/backend/CommandLineArguments;)V+2
j oracle.sysman.assistants.dbca.ui.UIHost.(Ljava/lang/String;Loracle/sysman/assistants/dbca/backend/CommandLineArguments;)V+3
j oracle.sysman.assistants.dbca.ui.InteractiveHost.(Ljava/lang/String;Loracle/sysman/assistants/dbca/backend/CommandLineArguments;)V+3
j oracle.sysman.assistants.dbca.Dbca.getHost(Loracle/sysman/assistants/dbca/backend/CommandLineArguments;)Loracle/sysman/assistants/dbca/backend/Host;+56
j oracle.sysman.assistants.dbca.Dbca.execute([Ljava/lang/String;)V+49
j oracle.sysman.assistants.dbca.Dbca.main([Ljava/lang/String;)V+25
v ~StubRoutines::call_stub

没有明确的信息

检查java的路径和版本
[oracle@db1 download]$ java -version
java version “1.5.0_17″
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_17-b02)
Java HotSpot(TM) Client VM (build 1.5.0_17-b02, mixed mode)
是正确的,所以并不是java的路径导致的。

在otn和oracle forum里找了一下相关信息,有类似的问题,但是都没有明确的答复
猜测是bug导致的。

在metalink上搜索了一下。

找到类似的问题,确定是bug

[ID 942076.1]
X86 DBCA, NETCA GIVE JAVA HOTSPOT ERROR IF ON X86_64 HARDWARE [ID 942076.1]
You are encountering published Bug 8930861, “X86 DBCA, NETCA GIVE JAVA HOTSPOT ERROR IF ON X86_64 HARDWARE”

You have Oracle’s 32-bit 11.2.0.1.0 RDBMS software, a supported 32-bit Linux OS, but you are on 64-bit x86_64 hardware.

the command “cat /proc/cpuinfo” shows:
model name : Quad-Core AMD Opteron(tm) Processor 2356

Solution
1. Please find out if there is any business reason that the 64-bit hardware is only running a
32-bit OS. If not, then Oracle recommends that you re-install a 64-bit OS and 64-bit Oracle to
avoid published Bug 8930861, “X86 DBCA, NETCA GIVE JAVA HOTSPOT ERROR IF ON X86_64 HARDWARE”

2. If there is some business reason that you must use 64-bit hardware running a
32-bit Linux OS, then before you can use the 11gR2 DBCA or NETCA tools, you will need to apply patch 8670579 , “NETCA/DBCA FAILED WITH HOTSPOT VIRTUAL MACHINE”. You will be downloading and using file p8670579_112010_LINUX.zip

客户确实是64bit的机器,但是由于版本限制和其他的一些限制,,只能装了32位的系统,从而导致这个问题。

Apply patch p8670579搞定。

Oracle笔记:dbca出错C [libnnz11.so+0x3c3a8]