ORA-00600: internal error code, arguments: [kqd-objerror$]



Error: ORA-00600: internal error code, arguments: [kqd-objerror$], [U], [0], [88], [BIN$19274/1NYszgRAAUT/pFYw==$0], [], 

When: While purging recyclebin for a user or purging dba_recyclebin

 

SQL> purge recyclebin;
purge recyclebin
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kqd-objerror$], [U], [0], [88], [BIN$19274/1NYszgRAAUT/pFYw==$0], [], [], [], [], [], [], []





Analysis:

Very much surprised by error like this, only clue was the hexa binary object_name specified in the error

As like any other DBA have started searching for more details of the object…

SQL> select OWNER,OBJECT_NAME,ORIGINAL_NAME,OPERATION,BASE_OBJECT,PURGE_OBJECT ,CAN_PURGE from dba_recyclebin where OBJECT_NAME like '%1NYszgRAAUT%';
OWNER       OBJECT_NAME    ORIGINAL_NAM OPERATION BASE_OBJECT PURGE_OBJECT CAN
--------  ---------------------------- --------------------- --------------------- ---------------------- ------------ ---
CE3    BIN$19274/1NYszgRAAUT/pFYw==$0 D_SR_NODE  DROP  151579    151856    NO


Got few details like Original object name & object id’s of the original as well as hexa binary object which was not recoverable although

An attempt was made to drop the object (type was trigger in my case)

SQL> drop trigger "BIN$19274/1NYszgRAAUT/pFYw==$0";
drop trigger "BIN$19274/1NYszgRAAUT/pFYw==$0"
*
ERROR at line 1:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [kqd-objerror$], [U], [0], [88], [BIN$19274/1NYszgRAAUT/pFYw==$0], [], [], [], [], [], [], []
Process ID: 25839
Session ID: 164 Serial number: 10469
  

Oh! Got the same error



Finally got the solution after hunting on Google!

Solution:

Insert the object id’s found from dba_recyclebin into sys.objerror$, so that object causing error can be bypassed during purge recyclebin

SQL> show user
USER is "SYS"
SQL> insert into sys.objerror$ values(151579);

1 row created.

SQL> insert into sys.objerror$ values(151856);

1 row created.

SQL> select * from dba_objects where object_id='151579';

no rows selected

SQL>  select * from dba_objects where object_id='151856';

no rows selected

SQL> commit;

Commit complete.



SQL> conn CE3/test_333

Connected.



SQL> purge recyclebin;

Recyclebin purged.

SQL> conn / as sysdba
Connected.

SQL> purge dba_recyclebin;

DBA Recyclebin purged.
 

11 comments:

  1. Thanks. It worked well. I had several hundreds of objects giving this error while clearing DBA_RECYCLEBIN. I had inserted object ids of all the records in dba_recyclebin and purge. It worked well. Excellent post.

    ReplyDelete
  2. Thank you for the post ! Helped me a lot to fix my issue on 11.2.0.3.
    Regards,
    Cosmin

    ReplyDelete
  3. Thanks for the solution. it worked for me. Though the issue for me was also in a trigger. What might be causing this issue?

    ReplyDelete
  4. Still I am getting the issues :(

    SQL> select OWNER,OBJECT_NAME,ORIGINAL_NAME,OPERATION,BASE_OBJECT,PURGE_OBJECT ,CAN_PURGE from dba_recyclebin where OBJECT_NAME like '%BIN$71yQGVgDADzgQwqBJgKp1A%';

    OWNER OBJECT_NAME ORIGINAL_NAME OPERATION BASE_OBJECT PURGE_OBJECT CAN
    ------------------------------ ------------------------------ -------------------------------- --------- ----------- ------------ ---
    CAS BIN$71yQGVgDADzgQwqBJgKp1A==$0 AR_PH_ARC_UNDO_DT DROP 20108 30668 NO

    SQL> insert into sys.objerror$ values(20108);

    1 row created.

    SQL> insert into sys.objerror$ values(30668);

    1 row created.

    SQL> commit;

    Commit complete.

    SQL> purge dba_recyclebin;
    purge dba_recyclebin
    *
    ERROR at line 1:
    ORA-00603: ORACLE server session terminated by fatal error
    ORA-00600: internal error code, arguments: [kqd-objerror$], [U], [0], [49], [BIN$71yQGVgLADzgQwqBJgKp1A==$0], [], [], [], [], [], [], []
    Process ID: 8781984
    Session ID: 92 Serial number: 29

    ReplyDelete
  5. Above error has been resolved with the same steps mentioned in the article. there was multiple object in recycle bin to whose entry was required to add into sys.objerror$ . Later on it was resolved. Thanks for useful information.

    SQL> purge dba_recyclebin;
    purge dba_recyclebin
    *
    ERROR at line 1:
    ORA-00603: ORACLE server session terminated by fatal error
    ORA-00600: internal error code, arguments: [kqd-objerror$], [U], [0], [49], [BIN$71yQGVbBADzgQwqBJgKp1A==$0], [], [], [], [], [], [], []
    Process ID: 39190750
    Session ID: 12 Serial number: 13


    SQL> conn / as sysdba
    Connected.
    SQL> select OWNER,OBJECT_NAME,ORIGINAL_NAME,OPERATION,BASE_OBJECT,PURGE_OBJECT ,CAN_PURGE from dba_recyclebin where OBJECT_NAME like '%BIN$71yQGVbBADzgQwqBJgKp1A%';

    OWNER OBJECT_NAME ORIGINAL_NAME OPERATION BASE_OBJECT PURGE_OBJECT CAN
    ------------------------------ ------------------------------ -------------------------------- --------- ----------- ------------ ---
    CAS BIN$71yQGVbBADzgQwqBJgKp1A==$0 AR_PDI_UNDO_DT DROP 20070 30672 NO

    SQL> insert into sys.objerror$ values(20070);

    insert into sys.objerror$ values(30672);
    1 row created.

    SQL> SQL>

    1 row created.

    SQL> commit;

    Commit complete.

    SQL> purge dba_recyclebin;

    DBA Recyclebin purged.

    SQL> exit

    ReplyDelete
  6. Thanks for the solution! I got this error while dropping an user.

    ReplyDelete
  7. Hi Ajay,

    I am facing the same issue on 10g DB and I am trying to resolve it using above approach. But the table sys.objerror$ does not exist in 10g database.

    ReplyDelete
    Replies
    1. Hope You are using sysdba account to perform this activity or you have system view permissions. Also check if all db option components are valid like utlrp ..

      Delete