ITPub博客

首页 > 数据库 > Oracle > ORA-07445错误解决一例

ORA-07445错误解决一例

原创 Oracle 作者:Jet_Zhang 时间:2015-05-12 23:11:15 0 删除 编辑
测试人员反映说在一台测试库上跑SQL报错了(具体的SQL这里就不说了,总之是很复杂的一个SQL,有9百多行。。。汗),错误是:

ORA-03113: end-of-file on communication channel

一开始怀疑是不是SQL过于复杂,库不堪重负挂掉了,我们的测试库机器都不怎么好,而且很多都是虚机,而且是一个物理机上跑十几个虚机的那种。。。所以没有理由不怀疑库挂掉的可能性。
       连接服务器查看,数据库跑的好好的,监听也正常,没报任何错误。好吧,接下来查看alert log,有错误了:

ORA-07445: exception encountered: core dump [kkqudhus()+756] [SIGSEGV] [Address not mapped to object] [0x000000068] [] []

7445的错误,原因也挺多的,坏块、内存错误、还有Oracle本身的BUG。而且BUG的可能性很大。Oracle也提供了ORA-600/ORA-7445/ORA-700 Error Look-up Tool,这是个很好的工具,输入第一个错误码,系统就会帮你去查找相关的文档:



果不其然,错误是由Oracle的BUG(BUG:4664788)引起的,同时Oracle提供了两种解决方案:
1、修该隐藏参数_optimizer_cbqt_no_size_restriction为false
2、应用相关补丁。
由于测试人员说有点急,而且也只是测试库,所以这里采用了第一种修改隐藏参数的方法。查看当前隐藏参数的信息:

点击(此处)折叠或打开

  1. SQL> select x.ksppinm name,
  2.   2 y.ksppstvl value,
  3.   3 y.ksppstdf isdefault,
  4.   4 decode(bitand(y.ksppstvf, 7),
  5.   5 1,
  6.   6 \'MODIFIED\',
  7.   7 4,
  8.   8 \'SYSTEM_MOD\',
  9.   9 \'FALSE\') ismod,
  10.  10 decode(bitand(y.ksppstvf, 2), 2, \'TRUE\', \'FALSE\') isadj
  11.  11 from sys.x$ksppi x, sys.x$ksppcv y
  12.  12 where x.inst_id = userenv(\'Instance\')
  13.  13 and y.inst_id = userenv(\'Instance\')
  14.  14 and x.indx = y.indx
  15.  15 and x.ksppinm like \'%_optimizer_cbqt_no_size_restriction%\'
  16.  16 order by translate(x.ksppinm, \' _\', \' \');

  17. NAME
  18. --------------------------------------------------------------------------------
  19. VALUE
  20. --------------------------------------------------------------------------------
  21. ISDEFAULT ISMOD ISADJ
  22. --------- ---------- -----
  23. _optimizer_cbqt_no_size_restriction
  24. TRUE
  25. TRUE FALSE FALSE


修改隐藏参数:

点击(此处)折叠或打开

  1. SQL> alter system set \"_optimizer_cbqt_no_size_restriction\"=false scope=both;

  2. System altered.


让测试人员重新跑SQL,这次正常执行了。至此问题解决。

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

请登录后发表评论 登录
全部评论
中国南方Oracle用户组(SOUG)联合创始人,Oracle ACE,曾服务于国外某大型银行,曾担任国内某中型保险公司的技术经理,现为易景科技合伙人、首席架构师、CTO。主要研究方向数据库内核。

注册时间:2024-06-26

  • 博文量
    124
  • 访问量
    542488