我申请这个blog是为了督促自己,把自己平时的一些想法和思考结果保留下来。 本博客所有内容均为原创,如有转载请注明作者和出处

ORA-600(17285)错误

上一篇 / 下一篇  2008-04-25 21:47:05 / 个人分类:Bug

今天在后台alert文件中发现了一个ORA-600错误,这个错误是由于取消当前操作引发的。

 

 

日志中的错误记录如下:

Mon Apr 21 13:38:10 2008ITPUB个人空间 cA ?eTB1w/[ t
Errors in file /opt/oracle/admin/tradedb/udump/tradedb2_ora_12736.trc:
9O'|,C3Na4Z0ORA-00600:
内部错误代码,参数: [17285], [0xFFFFFFFF7AFD0938], [4294967295], [0x6E6A84068], [], [], [], []
[9|HI a5aEB*L0ORA-00604:
递归SQL级别1出现错误
ITPUB个人空间7K4a7g tg*y3G
ORA-01013:
用户请求取消当前的操作
z6_bz"{k0Mon Apr 21 13:38:11 2008ITPUB个人空间!f!h zRWh-f
Trace dumping is performing id=[cdmp_20080421133811]ITPUB个人空间vJC6KG?g"R
Mon Apr 21 13:38:11 2008
;^,XE P qrV c&};i0Errors in file /opt/oracle/admin/tradedb/udump/tradedb2_ora_12736.trc:
_8lM-i)i1O(n?4A&JW0ORA-07445:
出现异常错误:核心转储[kkxgpieb()+36] [SIGSEGV] [Address not mapped to object] [0xFFFF0000000001B8] [] []ITPUB个人空间%QD/l'o2j-i+n
Mon Apr 21 13:38:11 2008
A-YpK"X)xfZf0Errors in file /opt/oracle/admin/tradedb/udump/tradedb2_ora_12736.trc:
)veX X bg7in]0ORA-07445:
出现异常错误:核心转储
[pfrtcs()+16] [SIGSEGV] [Address not mapped to object] [0xFFFF000000000214] [] []ITPUB个人空间U Qrqv]
ORA-07445:
出现异常错误:核心转储[kkxgpieb()+36] [SIGSEGV] [Address not mapped to object] [0xFFFF0000000001B8] [] []

根据错误信息和错误的发生时间,基本上可以确定,问题是由于取消当前操作引起的,下面检查一下详细信息,查看当前执行的操作是什么。

Trace开头部分内容如下:

Oracle Database10gEnterprise Edition Release 10.2.0.3.0 - 64bit Production
u8k`X T V0With the Partitioning, Real Application Clusters, OLAP and Data Mining options
-@9@5fl$~_N9d7A0ORACLE_HOME = /opt/oracle/product/10.2/databaseITPUB个人空间s!Ghp mv
System name:    SunOS
.z6m/k$n6q*oh^0Node name:      ahrac2ITPUB个人空间&H2b{BA?%daWO
Release:        5.10
&SK*r ^u5qQ8C0Version:        Generic_118833-33ITPUB个人空间)xb WR"@
Machine:        sun4uITPUB个人空间 I*x5x&LO z'qi
Instance name: tradedb2
cDk i@#rz0Redo thread mounted by this instance: 2
@)`vx z&v3e0Oracle process number: 88
}Q(Z5H(x,f0Unix process pid: 12736, image: oracletradedb2@ahrac2

*** 2008-04-21 13:38:10.102ITPUB个人空间d5V6RP*EP8q
*** ACTION NAME:(Test Window - Script. for procedu) 2008-04-21 13:38:10.090ITPUB个人空间:Y leaHt
*** MODULE NAME:(PL/SQL Developer) 2008-04-21 13:38:10.090
B+UJ,Y?0*** SERVICE NAME:(tradedb.us.oracle.com) 2008-04-21 13:38:10.090ITPUB个人空间j!`#l&Fm*W(uS$L6L
*** SESSION ID:(121.9708) 2008-04-21 13:38:10.090
+VjID;_O;dK g)w0*********START PLSQL RUNTIME DUMP************
B KX*k.x3?&p0***Got internal error Exception caught in pfrrun() while running PLSQL***
:Ps)t9r7@?:{0`0***Got ORA-1013 while running PLSQL***
0tAl'jHtZ0PACKAGE BODY SYS.PBREAK:

从这里可以看到错误会话是通过PL/SQL Developer连接到数据库的,其实如果对这个错误熟悉的话,从这里还能看出更多的东西,这个后面再说。

下面是出错SQL部分:

ksedmp: internal or fatal error
'f#x4H'Q{0ORA-00600:
内部错误代码,参数: [17285], [0xFFFFFFFF7AFD0938], [4294967295], [0x6E6A84068], [], [], [], []ITPUB个人空间?7d w"[\6`#d~
ORA-00604:
递归SQL级别1出现错误

UlO)PX g1~$w0ORA-01013:
用户请求取消当前的操作
[ g |.WN9H8q^0Current SQL statement for this session:ITPUB个人空间n(|)|&W1tA,Q+p6A
beginITPUB个人空间/{1dC w H j8H2X%IV
  -- Call the procedure
h T1]#i\ a8|E+H0  pkg_balance.p_generate_data;ITPUB个人空间 Z)nM$X` m:Y9{
end;

从这里只能看出错误的发生与用户取消操作有关,调用的PL/SQL包本身并没有什么异常。

METALINK查询参数17285600错误,并没有发现和当前十分解决的情况,倒是一个7.3上的bug与目前问题最为接近:Doc ID: Note:377047.8,这篇文章的题目为:Bug 377047 PLSQL: ORA-600 [17285] if Ctrl-C in critical code。当然这个bug8.0.4之前出现,且在7.3.4.2中已经被FIXED。虽然7中的问题在10中再现的可能性不大,不过这个现象的描述确实和当前的情况最为解决。

既然通过17285找不到什么有意义的信息,这个问题同时还引发了3ORA-7445错误,其中两个参数为kkxgpieb,一个为pfrtcs。看看从这两个参数入手能不能找到什么有意义的信息。

首先继续查看当前的trace文件,找到这三个错误发生时,执行的SQL语句:

ksedmp: internal or fatal error
+VO/q o z7D^!A0ORA-07445:
出现异常错误:核心转储[kkxgpieb()+36] [SIGSEGV] [Address not mapped to object] [0xFFFF0000000001B8] [] []ITPUB个人空间&~BK.c&hBG
Current SQL statement for this session:ITPUB个人空间y:Iz/WX4| r_
beginITPUB个人空间$i-^J9]7wm7g
  sys.dbms_debug.default_timeout := 3600;ITPUB个人空间5HP:iD*Q0{*MT
  sys.dbms_debug.debug_off;ITPUB个人空间t~"\*y+U
end;
,u^qcLj8z1{`0Exception signal: 11 (SIGSEGV), code: 1 (Address not mapped to object), addr: 0xffff000000000214, PC: [0x1049bd730, pfrtcs()+16]ITPUB个人空间:v'A%xD8~9pg
*** 2008-04-21 13:38:11.268
9`)C} {Z)|0ksedmp: internal or fatal error
m\ g Rx(A1}0ORA-07445:
出现异常错误:核心转储
[pfrtcs()+16] [SIGSEGV] [Address not mapped to object] [0xFFFF000000000214] [] []
d |1CI7I'[ C i0ORA-07445:
出现异常错误:核心转储
[kkxgpieb()+36] [SIGSEGV] [Address not mapped to object] [0xFFFF0000000001B8] [] []
&_8r4^3Y \+s0ksedmp: obtaining current SQL failed earlier. not retrying

从上面的信息看,错误发生在DEBUG过程中。

根据kkxgpiebpfrtcs为关键字,继续搜索METALINK,其中kkxgpieb参数没有找到有价值的东西,但是查询pfrtcs的时候找到一篇文章对问题进行了比较清晰的说明:Doc ID: Note:464607.1

文章介绍了在使用调试功能时,在SYS.PBREAK模块中发生的错误可能无法正确的跟踪和处理,从而导致了ORA-600[17285]错误,后面跟着ORA-604错误,而且可能随后会产生ORA-7445[pfrtcs]错误。

看来这就是导致问题的关键,Oracle给出的解决方法是将DEBUG CONNECT SESSION权限授予需要DEBUG的用户。

在当前的例子中,这个权限已经提前授予了,但是可能由于错误是ORA-1031,是用户取消造成的,相对比较特殊,Oracle没有正确的捕获和处理,从而导致了这一系列Oracle内部错误的出现。

总的来说,这个错误出现的概率很小,且本身没有什么维护。

 


TAG:

引用 删除 a2001hjf86   /   2009-02-19 17:53:58
谢谢,刚遇到
ORACLE LIFE 引用 删除 oradbHome   /   2008-05-30 11:35:29
我也遇到了. .
引用 删除 道可道非常道   /   2008-04-29 23:45:22
很不错,正好解决了我的一个问题
引用 删除 Guest   /   2008-04-26 23:48:37
rwr
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar