ORA-7445(xsStkPurge)错误

客户数据库出现ORA-7445(xsStkPurge)错误。

 

 

数据库告警日志出现如下的错误信息:

Fri Aug 3 17:10:03 2012
Errors in file /ora/app/oracle/admin/ORCL/udump/orcl_ora_23101.trc:
ORA-07445: exception encountered: core dump [xsStkPurge()+73] [SIGSEGV] [Address not mapped to object] [0x0] [] []
ORA-04030: out of process memory when trying to allocate 8184 bytes (OLAP stack hea,OLAP Stack Seg)
Fri Aug 3 17:10:19 2012
Errors in file /ora/app/oracle/admin/ORCL/udump/orcl_ora_23101.trc:
ORA-04030: out of process memory when trying to allocate 8156 bytes (callheap,kdbmal allocation)
ORA-07445: exception encountered: core dump [xsStkPurge()+73] [SIGSEGV] [Address not mapped to object] [0x0] [] []
ORA-04030: out of process memory when trying to allocate 8184 bytes (OLAP stack hea,OLAP Stack Seg)

对应的TRACE文件详细信息为:

*** 2012-08-03 17:10:03.098
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [xsStkPurge()+73] [SIGSEGV] [Address not mapped to object] [0x0] [] []
ORA-04030: out of process memory when trying to allocate 8184 bytes (OLAP stack hea,OLAP Stack Seg)
Current SQL statement for this session:
begin :1 := dbms_aw.interp(:2); end;
----- PL/SQL Call Stack -----
  object      line  object
  handle    number  name
0x9b6ad21c        93  package body SYS.DBMS_AW
0x9b6ad21c       180  package body SYS.DBMS_AW
0x9b58b904         1  anonymous block
----- Call Stack Trace -----
calling              call     entry                argument values in hex     
location             type     point                (? means dubious value)    
-------------------- -------- -------------------- ----------------------------
ksedst()+27          call     ksedst1()            1 ? 1 ?
ksedmp()+557         call     ksedst()             1 ? 8168FB8 ? B748BF3C ?
                                                   A9A650 ? 10 ? B7491D38 ?
ssexhd()+882         call     ksedmp()             3 ? B3F831F ? 74537378 ?
                                                   7275506B ? 29286567 ?
                                                   33372B ?
xsStkPurge()+73      signal   00000000             B ? B748DC90 ? B748DD10 ?
xsStkPop()+48        call     xsStkPurge()         BDAFBA7C ? B63CC640 ?
                                                   B63CC644 ? 1 ?
xsPMTSETUP()+2213    call     xsStkPop()           BDAFBA7C ? 12EB2 ? 0 ?
                                                   B61D1528 ? B471A440 ? 0 ?
xsPMTRST()+223       call     xsPMTSETUP()         B63B70DC ? B60FE628 ?
                                                   A933EDF0 ? 0 ?
xsINTERP()+1135      call     00000000             B63B70DC ? B63CA66C ?
                                                   BFFF9018 ?
xsILPXEQ()+4347      call     xsINTERP()           B63B70DC ? BFFF9018 ?
                                                   BFFF8A84 ? 1C6 ? 0 ?
                                                   B621ED28 ?
xsILPCALL()+2621     call     xsILPXEQ()           CCF04F0 ? B2CFAD5 ?
                                                   B63B70DC ? B60ED380 ?
                                                   B63DA8C4 ?
.
.
.
opiodr()+985         call     00000000             3C ? 4 ? BFFFF800 ?
opidrv()+466         call     opiodr()             3C ? 4 ? BFFFF800 ? 0 ?
sou2o()+91           call     opidrv()             3C ? 4 ? BFFFF800 ?
opimai_real()+117    call     sou2o()              BFFFF7E4 ? 3C ? 4 ?
                                                   BFFFF800 ?
main()+111           call     opimai_real()        2 ? BFFFF830 ?
__libc_start_main()  call     00000000             2 ? BFFFF8F4 ? BFFFF900 ?
+211                                               A8F1D6 ? BC7FF4 ? 0 ?

--------------------- Binary Stack Dump ---------------------

根据MOS的查询,只有文章Bug 6755052 : ORA-7445 [XSSTKPURGE()+73] [SIGSEGV] IN EPB WHEN DISTRIBUTING DOCUMENTS与之最为接近。应该的版本同为10.2.0.3,可以确认的是导致ORA-7445错误的主要原因还是ORA-4030错误。而且文档和当前问题的一个重要相同点在于,二者都是32位系统。

由于32位数据库的限制,SGA的大小只有1.7G,而SHARED_POOL只有300M左右,STREAMS_POOL更是只有16M,这就导致了Oracle在处理一些复杂的组件时,很容易出现内存不足的情况。

从问题时刻的AWR分析,TOP 5中出现了明显的Streams AQ: enqueue blocked on low memory等待,这个等待只出现了1次但是经历了293秒,说明STREAMS_POOL空间不足,且数据库在尝试给STREAMS_POOL分配更多空间时报错。

客户主机拥有16G内存,那么这个问题的最有限的方法就是重建64位数据库环境,彻底避免该问题的产生。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-742478/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/4227/viewspace-742478/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值