咨询微信: dbservice1234 7 x 24 在线支持!

    你在这里

    • You are here:
    • 首页 > 博客 > PDSERVICE的博客 > Oracle ORA-00600: internal error code, arguments: [ktsircinfo_num1] Missing Rows In tables – Example 2 Ind$ with no entries in Seg$

Oracle ORA-00600: internal error code, arguments: [ktsircinfo_num1] Missing Rows In tables – Example 2 Ind$ with no entries in Seg$

Oracle ORA-00600: internal error code, arguments: [ktsircinfo_num1] Missing Rows In tables – Example 2 Ind$ with no entries in Seg$

 

Missing Rows In tables – Example 2
Ind$ with no entries in Seg$
 

 

• A query from a table produces an ORA-600 error

SQL> select * from dept where dname = 'ACCOUNTS';

select * from dept where dname = 'ACCOUNTS'

              *

ERROR at line 1:

ORA-00600: internal error code, arguments: [ktsircinfo_num1], [14], [2], [49],[], [], [], []

 

• Identify what is the related object type producing the error.  Hcheck8i can be run to identify the object. Output:

Problem: Orphaned IND$ (no SEG$) - See Note:65987.1 (Bug:624613)

ORPHAN IND$: OBJ=39442 DOBJ=39442 TS=14 RFILE/BLOCK=2 49 BO#=39438 SegType=

 

• No entry in sys.seg$:

SQL> select * from sys.seg$ where ts#=14 and file#=2 and block#=49;

no rows selected

• Ind$ with an entry:

SQL> select ts#, file#, block# from sys.ind$ where obj#=39442;

 

       TS#      FILE#     BLOCK#

---------- ---------- ----------

        14          2         49

 

Notes:

•How to identify what kind of object is related to the ORA-600 ?
•As there are no entries in seg$, query from dba_extents does not return any rows:

SQL> select * from dba_extents where file_id = 2 and 49 between block_id and block_id+blocks-1;

no rows selected

•In addition to hcheck8i, one way is to evaluate the call stack for the ORA-600 error.  In this example it is:

ORA-00600: internal error code, arguments: [ktsircinfo_num1], [14], [2], [49],[], [], [], []

Current SQL statement for this session:

select * from dept where dname = 'ACCOUNTS‘

Top call stack is:

 ktsircinfo1        

 ktsircinfo         KTS Row Cache Information from seg$

 kdigetspace2       

 kdigetspace        kdigetspace - kernel data index get space information

 kkdl1ck            kkdl get All Concatenated Keys: Get all concatenated keys (ckydefs)

 kkdlack            void     kkdlick(struct frodef *fro, struct ckyph *ckyphp);

 

So this error is related to an index.

In a 10046 level 4 output the statement before seg$ is from obj$:

 

PARSING IN CURSOR #7 len=116 dep=1 uid=0 oct=3 lid=0 tim=1094423927797063 hv=431456802 ad='5ad5b3b0'

select o.owner#,o.name,o.namespace,o.remoteowner,o.linkname,o.subname,o.dataobj#,o.flags from obj$ o where o.obj#=:1

END OF STMT

PARSE #7:c=0,e=979,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=0,tim=1094423927797029

BINDS #7:

 bind 0: dty=2 mxl=22(22) mal=00 scl=00 pre=00 oacflg=08 oacfl2=1 size=24 offset=0

   bfp=40736628 bln=22 avl=03 flg=05

   value= 39442 ------------------------------------------à OBJ# value

EXEC #7:c=0,e=911,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=4,tim=1094423927798416

FETCH #7:c=0,e=119,p=0,cr=3,cu=0,mis=0,r=1,dep=1,og=4,tim=1094423927798646

 

------------

•Query from dba_objects:

select owner, object_name, object_type, object_id

from dba_objects

where object_id = 39442;

OWNER      OBJECT_NAME          OBJECT_TYPE         OBJECT_ID

---------- -------------------- ------------------ ----------

TEST       I_DEPT_DNAME         INDEX                   39442

SQL> Select ts#, file#, block# from ind$ where obj#= 39442;

 TS#      FILE#     BLOCK#

---------- ---------- ----------

        14          2         49 --------------------------à ORA-600 arguments