在使用DBCA命令创建新的数据库时,DBCA命令无法启动。运行的环境是宿主机64bit+AMD cpu, 而客户机为Linux 32bit + Grid Infrastructure(32) + Oracle database software(32)的情形。原本想着32bit运行的会快一点,没想到Bug 8670579 在执行dbca时再一次被触发,根据Oracel描述,类似的NETCA也会触发这个Bug。
一、故障现象
[oracle@linux1 ~]$ dbca
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0x9e0ea498, pid=4242, tid=3086584016
#
# Java VM: Java HotSpot(TM) Server VM (1.5.0_17-b02 mixed mode)
# Problematic frame:
# C [libnnz11.so+0x3c498]
#
# An error report file with more information is saved as hs_err_pid4242.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
Aborted
[oracle@linux1 ~]$
二、故障描述
#MeatLink [ID 942076.1]给出了关于这个问题的描述,那就是在客户机上安装了32bit的操作系统与Oracle,而宿主机硬件为64bit平台
#该现象为一个Oracle Bug,Bug号:8670579
Applies to:
Oracle Server - Enterprise Edition - Version 11.2.0.0 and later
Linux x86
Symptoms
After successfully installing 32-bit 11gR2 (11.2.0.1.0) software onto a 32-bit Linux OS (x86) system, neither netca or dbca can be run:
Dbca error is:
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0x9dc0c35e, pid=8292, tid=3086022864
#
# Java VM: Java HotSpot(TM) Server VM (1.5.0_17-b02 mixed mode)
# Problematic frame:
# C [libnnz11.so+0x3c35e]
Netca error is:
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0xa2c2235e, pid=8272, tid=3086309584
#
# Java VM: Java HotSpot(TM) Server VM (1.5.0_17-b02 mixed mode)
# Problematic frame:
# C [libnnz11.so+0x3c35e]
Other Problematic frame values have also been reported, and include:
[libnnz11.so+0x3c35e]
[ld-linux.so.2+0xc1fc]
Changes
Although the Linux OS that has been installed is indeed a supported 32-bit Linux OS, the hardware that is being used is 64-bit x86_64 hardware.
Cause
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
三、解决方案
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 need to download the 11.2.0.1.0 version of the patch
(p8670579_112010_LINUX.zip) and install it.
References
@ BUG:8670579 - DBBETA :NETCA/DBCA FAILED WITH HOTSPOT VIRTUAL MACHINE
BUG:8930861 - X86 DBCA, NETCA GIVE JAVA HOTSPOT ERROR IF ON X86_64 HARDWARE
#检查本机
[root@linux1 ~]# cat /proc/cpuinfo | grep model
model : 4
model name : AMD Phenom(tm) II X4 955 Processor
model : 4
model name : AMD Phenom(tm) II X4 955 Processor
#下载8670579 patch,再使用opatch apply 即可。
#在安装Grid Infrastructure时执行root.sh时也会有出发该bug的情形,最主要的原因应该是对AMD cpu,32bit 平台支持不好。
#因此,宿主机安装在64bit硬件平台,客户机使用32位,需要将该patch应用到Grid Infrastructure,其次也要应用到Oracle database software。
#关于执行root.sh时,会收到Failed to create or upgrade OLR 错误。
BUG:8670579 具体如何实现apply,可参考: Failed to create or upgrade OLR
更多参考
DML Error Logging 特性
PL/SQL --> 游标
PL/SQL --> 隐式游标(SQL%FOUND)
批量SQL之 FORALL 语句
批量SQL之 BULK COLLECT 子句
PL/SQL 集合的初始化与赋值
PL/SQL 联合数组与嵌套表
PL/SQL 变长数组
PL/SQL --> PL/SQL记录
SQL tuning 步骤
高效SQL语句必杀技
父游标、子游标及共享游标
绑定变量及其优缺点
dbms_xplan之display_cursor函数的使用
dbms_xplan之display函数的使用
执行计划中各字段各模块描述
使用 EXPLAIN PLAN 获取SQL语句执行计划