适用于:
Oracle Server - Enterprise Edition - Version: 10.2.0.1 to 11.1.0.7 - Release: 10.2 to 11.1
HP-UX Itanium
Oracle Server Enterprise Edition - Version: 10.2.0.1 to 11.1.0.7
症状:
在检索资源时失败,并得到错误139(SIGSEGV),10gR2、11gR1集群资源崩溃。
当查看输出命令:crs_stat –t是,你可能发现集群资源(像虚拟ip,监听器,实例,服务,etc)状态是脱机的。
全部启动他们之后将会运行的挺好,直到这个问题再次来临。
crsd.log 显示:
2009-01-22 08:43:14.664: [ COMMCRS][44]Authorization failed, network error
2009-01-22 08:43:14.670: [ OCRSRV][44]th_select_answer: Failure in answer. clsc ret [3]
2009-01-22 08:43:14.675: [ CRSAPP][152290] CheckResource error for ora.node1.vip error code = 139
2009-01-22 08:43:14.682: [ CRSRES][152290] In stateChanged, ora.node1.vip target is ONLINE
2009-01-22 08:43:14.701: [ CRSRES][152290] ora.node1.vip on node1 went OFFLINE unexpectedly
在出现问题的时候,ora.node 1.vip.log 没有信息。你可能在<CRS_HOME>/racg/racgmain里找到一个racgmain生成的内核文件
Eg.
node1:/u01/oracle/app/oracle/product/10.2.0/crs/lognode1/racg/racgmain# ls -ltr
-rw------- 1 root sys 7488128 Jan 22 08:43 core
node1:/u01/oracle/app/oracle/product/10.2.0/crs/log/node1/racg/racgmain# file core
core: ELF-64 core file - IA64 from 'racgmain' - received SIGSEGV
原因:
从内核文件现实中,使用文件Note 1812.1得到堆栈跟踪。
"localtime_r"
Eg.
.....
#0 0xc0000000002dc570:0 in localtime_r+0x20 () from /usr/lib/hpux64/libc.so.1
(gdb) q
这个症状和错误代码=139(SIGSEGV)类似于Bug 6783336和Bug 7165018都有这个基本的Bug 6955290(所有支持的相同的平台:HP-UX Itanium),指向一个HP 的编译问题。
这个问题是由一个C/AC++编译缺陷引起的(版本:cc: HP C/aC++ B3910B A.06.14 [Feb 22 2007]),那是一个被用于oracle构建可执行文件的。这个问题本确认于没有发布的Bug 7165018。
解决:
这个问题在11.2版本中已经修复了,一个新的HP C/aC++编译器被使用。
不是每一个11.2版本都能被修复,甚至不在集群绑定补丁的顶部。
使用如下解决方法:
1. 在节点实施解决方法,你必须先停止集群服务。
root> crsctl stop crs
2. 改变模式为可执行的,使用共享库从“延迟绑定”到“立刻绑定”,使用如下命令:
$ chatr -B immediate <executable>
从both CRS Home and RDBMS Home,我们需要“chatr -B immediate”在接下来的可执行文件。
crs_relocate.bin
crs_start.bin
crs_stop.bin
crsd.bin
evmd.bin
racgons.bin
racgeut
racgevtf
racgmain
3. 当完成之后,开始集群服务并且在接下来的节点中重复上面这些步骤。
4. 只要你申请了补丁或者补丁集安装,重复上面的解决方法。