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

ORA-600(ktftb_backout_xids_3)错误

上一篇 / 下一篇  2007-12-22 00:00:00 / 个人分类:Bug

在撤销事务的时候碰到了ORA-600错误,错误函数ktftb_backout_xids_3


*F4zuR V0

这个bug是由于指定参数有问题造成的。

SQL> DECLAREITPUB个人空间 |i(v]-g-r/U)_
2 V_XID XID_ARRAY;ITPUB个人空间!s*|3sl ZM%t/]X |w5A
3 BEGINITPUB个人空间;{7uuS%`0B6wa
4 V_XID := SYS.XID_ARRAY('0002001C00000374');ITPUB个人空间Ja$n@ d E1t:SH
5 DBMS_FLASHBACK.TRANSACTION_BACKOUT(2, V_XID);ITPUB个人空间,Q`B'Y o;z h
6 END;
;sl4a.G2R0 7 /ITPUB个人空间a6u!P8S H_
DECLARE
&FxQ2O yEhM2] d0*
1 行出现错误:
RNr \$T&Zrj*?8j0ORA-00600:
内部错误代码, 参数
: [ktftb_backout_xids_3], [1], [0], [], [], [], [], []ITPUB个人空间E3K)X#k-lr u3^ q
ORA-06512:
"SYS.DBMS_FLASHBACK", line 37ITPUB个人空间}4E9P Tq$e+n^K4c&G
ORA-06512:
"SYS.DBMS_FLASHBACK", line 70
g#xE]3OzO0ORA-06512:
line 5

后台错误信息为:

Errors in file /data/oracle/diag/rdbms/test11g/test11g/trace/test11g_ora_15095.trc (incident=6154):
K$FT3p0oGQ@Nf0ORA-00600:
内部错误代码, 参数: [ktftb_backout_xids_3], [1], [0], [], [], [], [], []
4g!yIZN4Ss0Incident details in: /data/oracle/diag/rdbms/test11g/test11g/incident/incdir_6154/test11g_ora_15095_i6154.trc

trace文件中查看:

Dump file /data/oracle/diag/rdbms/test11g/test11g/incident/incdir_6154/test11g_ora_15095_i6154.trcITPUB个人空间 dy7B$e LxY:@1E
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
)w+xr%PaT#{+j} ~0With the Partitioning, OLAP, Data Mining and Real Application Testing options
S Hci K/D(pS0ORACLE_HOME = /data/oracle/product/11.1ITPUB个人空间"e}l3Hq])S
System name: SunOS
$OU9^vKQ0Node name: netdb1ITPUB个人空间d)x.U3qwQ(AgQ GU7M
Release: 5.10
m;u*?'ZY0Version: Generic_118833-33
p m!bmg+Ce V0Machine: sun4uITPUB个人空间]p-v:fx#WE~B L
Instance name: test11g
5Tk"q;ZA"~-me Q3z0Redo thread mounted by this instance: 1ITPUB个人空间1T3e`z%Lp3S,x0k
Oracle process number: 19
4sV2I4sN4W y0Unix process pid: 15095, image: oracle@netdb1

ITPUB个人空间0N d)i3S1w
*** 2007-12-19 13:28:44.299
+S Y8Zv%_(s&o0*** SESSION ID:(146.29822) 2007-12-19 13:28:44.299ITPUB个人空间@#Oj E/JB
*** CLIENT ID:() 2007-12-19 13:28:44.299
2z'UI]`l1c^7?0*** SERVICE NAME:(test11g.netdb) 2007-12-19 13:28:44.299
-K:H2].z:d:A }0*** MODULE NAME:(sqlplusw.exe) 2007-12-19 13:28:44.299
tu%LV%N3?0*** ACTION NAME:() 2007-12-19 13:28:44.299ITPUB个人空间8M$m C;d6r;R#j6x
ITPUB个人空间W ms(v ybq
Dump continued from file: /data/oracle/diag/rdbms/test11g/test11g/trace/test11g_ora_15095.trcITPUB个人空间%Mr].r{Oq
ORA-00600:
内部错误代码, 参数: [ktftb_backout_xids_3], [1], [0], [], [], [], [], []

========= Dump for incident 6154 (ORA 600 [ktftb_backout_xids_3]) ========

*** 2007-12-19 13:28:44.310
)Y,?APu0----- Current SQL Statement for this session (sql_id=79q2xt2hapu3m) -----
#Z;z z+c,}$p0DECLAREITPUB个人空间 us4yDS6`$K5o1A6F#o
V_XID XID_ARRAY;
J&l [D Rr\e,A0BEGIN
,Y }s:Ph,h5z2M0 V_XID := SYS.XID_ARRAY('0002001C00000374');
3x{I/s(rV W0 DBMS_FLASHBACK.TRANSACTION_BACKOUT(2, V_XID);ITPUB个人空间)e]Y'pfK,q
END;
/^_([(F4p1}xj4z0----- PL/SQL Stack -----ITPUB个人空间DW/aM#L;ES{]+r
----- PL/SQL Call Stack -----
gL7c;r!Z8N{0 object line objectITPUB个人空间b8@ G{O!ya
handle number name
7S rY/M3M6~T9]YD03950e0648 37 package body SYS.DBMS_FLASHBACK
-~(`L;QG03950e0648 70 package body SYS.DBMS_FLASHBACKITPUB个人空间)Q[LZK3c
441b274b8 5 anonymous block

----- Call Stack Trace -----
\"L.cF,LL0calling call entry argument values in hex
o-Th L/d sO#s3y0location type point (? means dubious value)
t;xk!zl k!R?H0-------------------- -------- -------------------- ----------------------------ITPUB个人空间2DI8d.?/E;~.h
ksedst1()+96 CALL skdstdst() FFFFFFFF7FFF1490 ?ITPUB个人空间1T3|;T'jD*m.D0QJ'[%h
000000000 ?
)B1h T \W)r3N+{0 FFFFFFFF7FFC9018 ?
@2u0fL5[@mn?g1o0 000000000 ?
mp j9kAN8LG'V~0 FFFFFFFF7FFC9018 ?
1Dn Tq2Ci A0D0 1095E7F10 ?ITPUB个人空间 B9|;n+AE gm&W^
ksedst()+56 CALL ksedst1() 000000000 ? 000000001 ?ITPUB个人空间 t@$X'M'_:r XbS
00010992B ? 000109800 ?
ZAYQ}8a0 109923000 ? 000109923 ?
%c$|}Jx,Lu+\0dbkedDefDump()+1388 CALL ksedst() 000000000 ? 000000000 ?
*PL|%[PHoQwV/\0 000000000 ? 000000000 ?ITPUB个人空间 ]1h8hS*yC$Cg~.}:R
10992B000 ? 00010992B ?
J[b(@7tl-`G0dbgexPhaseII()+760 PTR_CALL 0000000000000000 10992B000 ? 000109800 ?
2Ou3x"U K7`1qn0 10992B000 ? 000109800 ?ITPUB个人空间\,PN8v'c
00010992B ? 10993D000 ?

导致这个错误的原因是只初始化了一个XIDS,但是指定事务数是2Oracle在处理参数的时候报错。从Oracle的错误函数也可以看出这一点,前台出现的600错误对应的函数名称是ktftb_backout_xids_3,说明问题和XIDS函数有关,而从后天的trace文件中的错误看,出现错误的函数名称为dbgexPhaseII,说明Oracle在进行参数分析的时候出错。

正常情况下,Oracle应该报错,输入参数不匹配或者输入参数有误,而不是直接报错ORA-600

这个错误目前在metalink上还没有记录。


TAG:

 

评分:0

我来说两句

显示全部

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

Open Toolbar