Oracle ORA-07445 [evaopn3()+384] 错误 分析


 

 

1.OS 和 DB 版本

Oracle Version: 11.2.0.2

Operation System:HP-UXItanium 11.31

 

 

2.Alert log中信息

 

Tue Oct 16 22:27:31 2012

Exception [type: SIGSEGV,Address not mapped to object] [ADDR:0xC00000000] [PC:0x400000000631B880,evaopn3()+384] [flags: 0x0, count: 1]

Errors in file/oracle/app/oracle/diag/rdbms/wzpartdb/wzpartdb/trace/wzpartdb_j004_19591.trc  (incident=56673):

ORA-07445: exceptionencountered: core dump [evaopn3()+384] [SIGSEGV] [ADDR:0xC00000000][PC:0x400000000631B880] [Address not mapped to object] []

Incident details in:/oracle/app/oracle/diag/rdbms/wzpartdb/wzpartdb/incident/incdir_56673/wzpartdb_j004_19591_i56673.trc

Use ADRCI or Support Workbench to packagethe incident.

See Note 411.1 at My Oracle Support forerror and packaging details.

Tue Oct 16 22:27:56 2012

Dumping diagnostic data indirectory=[cdmp_20121016222756], requested by (instance=1, osid=19591 (J004)),summary=[incident=56673].

Tue Oct 16 22:27:58 2012

Sweep [inc][56673]: completed

Sweep [inc2][56673]: completed

 

 

3.问题定位

与ORA-7445 相关的错误多与bug相关,一般我们需要关注第一个参数的类型,这里是evaopn3。 MOS上专门的文章介绍这个,参考:

ORA-7445[evaopn3] (Doc ID 860969.1)

 

 

 

这里与我们的错误:

ORA-07445: exceptionencountered: core dump [evaopn3()+384] [SIGSEGV] [ADDR:0xC00000000][PC:0x400000000631B880] [Address not mapped to object] []

 

可能与encryptedcolumns, function-based index 和 Xquery 相关。 一些已知的可能的bug如下:

Bug 13369579 - dump on evaopn3 withfunction base index and ORDER BY (Doc ID 13369579.8)

Bug 12724375 - ORA-7445 [evaopn3] fromXQuery with GROUP BY (Doc ID 12724375.8)

Bug 12672969 - Assorted Dumps withaggregate expression in ORDER BY (Doc ID 12672969.8)

Bug 13817586 - Dump on evaopn3 withEncrypted Columns (Doc ID 13817586.8)

 

 

通过排除,我这里是bug:12672969。

Bug 12672969 - Assorted Dumps withaggregate expression in ORDER BY (Doc ID 12672969.8)

 

查看trace,确定了某SQL在order by中使用了aggregation function。执行该SQL时就会触发ORA-7445的错误。

 

可以通过如下方式验证:

create table test1 ( col1 number, col2number );

 insert into test1 values( 1, 1 );

 commit;

 select count(*)

 from(select col2

      from test1

      group by col2 order by (sum(col2)+1));

 

Rediscovery Notes:

 1.ORA-7445 in aggregation evaluation function including evaopn3

 2.Order by elimination is performed

 3. Set function exists in the middle of theoperator tree in order by

    clause

 4.The fix for bug 8772028 is present

 

4.解决方案

MOS 上解决方案是修改参数:

alter sessionset "_optimizer_order_by_elimination_enabled"=false;

 

但是这个是个隐含参数,修改可能会引起其他的问题,Oracle 争对这个bug 提供了Patch:12672969.

 

可以在应用Patch 之后,在执行触发bug的SQL,确认bug 修复情况。

 

 

 

 

 

 

---------------------------------------------------------------------

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

QQ:492913789

Email:ahdba@qq.com

Blog:  http://www.cndba.cn/dave

Weibo:    http://weibo.com/tianlesoftware

Twitter:  http://twitter.com/tianlesoftware

Facebook: http://www.facebook.com/tianlesoftware

Linkedin: http://cn.linkedin.com/in/tianlesoftware


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值