ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-600(ktftb_backout_xids_3)错误

ORA-600(ktftb_backout_xids_3)错误

原创 Linux操作系统 作者:yangtingkun 时间:2007-12-22 00:00:00 0 删除 编辑

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


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

SQL> DECLARE
2 V_XID XID_ARRAY;
3 BEGIN
4 V_XID := SYS.XID_ARRAY('0002001C00000374');
5 DBMS_FLASHBACK.TRANSACTION_BACKOUT(2, V_XID);
6 END;
7 /
DECLARE
*
1 行出现错误:
ORA-00600:
内部错误代码, 参数
: [ktftb_backout_xids_3], [1], [0], [], [], [], [], []
ORA-06512:
"SYS.DBMS_FLASHBACK", line 37
ORA-06512:
"SYS.DBMS_FLASHBACK", line 70
ORA-06512:
line 5

后台错误信息为:

Errors in file /data/oracle/diag/rdbms/test11g/test11g/trace/test11g_ora_15095.trc (incident=6154):
ORA-00600:
内部错误代码, 参数: [ktftb_backout_xids_3], [1], [0], [], [], [], [], []
Incident 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.trc
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /data/oracle/product/11.1
System name: SunOS
Node name: netdb1
Release: 5.10
Version: Generic_118833-33
Machine: sun4u
Instance name: test11g
Redo thread mounted by this instance: 1
Oracle process number: 19
Unix process pid: 15095, image: oracle@netdb1


*** 2007-12-19 13:28:44.299
*** SESSION ID:(146.29822) 2007-12-19 13:28:44.299
*** CLIENT ID:() 2007-12-19 13:28:44.299
*** SERVICE NAME:(test11g.netdb) 2007-12-19 13:28:44.299
*** MODULE NAME:(sqlplusw.exe) 2007-12-19 13:28:44.299
*** ACTION NAME:() 2007-12-19 13:28:44.299

Dump continued from file: /data/oracle/diag/rdbms/test11g/test11g/trace/test11g_ora_15095.trc
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
----- Current SQL Statement for this session (sql_id=79q2xt2hapu3m) -----
DECLARE
V_XID XID_ARRAY;
BEGIN
V_XID := SYS.XID_ARRAY('0002001C00000374');
DBMS_FLASHBACK.TRANSACTION_BACKOUT(2, V_XID);
END;
----- PL/SQL Stack -----
----- PL/SQL Call Stack -----
object line object
handle number name
3950e0648 37 package body SYS.DBMS_FLASHBACK
3950e0648 70 package body SYS.DBMS_FLASHBACK
441b274b8 5 anonymous block

----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedst1()+96 CALL skdstdst() FFFFFFFF7FFF1490 ?
000000000 ?
FFFFFFFF7FFC9018 ?
000000000 ?
FFFFFFFF7FFC9018 ?
1095E7F10 ?
ksedst()+56 CALL ksedst1() 000000000 ? 000000001 ?
00010992B ? 000109800 ?
109923000 ? 000109923 ?
dbkedDefDump()+1388 CALL ksedst() 000000000 ? 000000000 ?
000000000 ? 000000000 ?
10992B000 ? 00010992B ?
dbgexPhaseII()+760 PTR_CALL 0000000000000000 10992B000 ? 000109800 ?
10992B000 ? 000109800 ?
00010992B ? 10993D000 ?

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

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

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

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

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10385412