Home >Database >Mysql Tutorial >ORA-07445错误解决一例

ORA-07445错误解决一例

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 16:00:332036browse

测试人员反映说在一台测试库上跑SQL报错了(具体的SQL这里就不说了,总之是很复杂的一个SQL,有9百多行。),错误是:ORA-03113: e

测试人员反映说在一台测试库上跑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、应用相关补丁。

由于测试人员说有点急,而且也只是测试库,所以这里采用了第一种修改隐藏参数的方法。查看当前隐藏参数的信息:

SQL> select x.ksppinm name,
y.ksppstvl value,
y.ksppstdf isdefault,
decode(bitand(y.ksppstvf, 7),
1,
\'MODIFIED\',
4,
\'SYSTEM_MOD\',
\'FALSE\') ismod,
decode(bitand(y.ksppstvf, 2), 2, \'TRUE\', \'FALSE\') isadj
from sys.x$ksppi x, sys.x$ksppcv y
where x.inst_id = userenv(\'Instance\')
and y.inst_id = userenv(\'Instance\')
and x.indx = y.indx
and x.ksppinm like \'%_optimizer_cbqt_no_size_restriction%\'
order by translate(x.ksppinm, \' _\', \' \');
NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISMOD      ISADJ
--------- ---------- -----
_optimizer_cbqt_no_size_restriction
TRUE
TRUE FALSE FALSE

修改隐藏参数:

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

System altered.

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

本文永久更新链接地址

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn