Pages

Sunday, March 20, 2016

ORA-00600: internal error code, arguments: [13013], [5001], [32001] by Example.

====================================================================================
ORA-600 Investigation by Example
====================================================================================

===========================
Issue:
===========================
Disk space is nearly 100%.
After checking, there are many core dumps under /software/oracle/diag/rdbms/orainst/orainst/trace.

===========================
Evidences:
===========================
trace file:
/software/oracle/diag/rdbms/<instance>/orainst/incident/incdir_71006/orainst_j000_21475_i71006.trc
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options
ORACLE_HOME = /software/oracle/111
System name:    Linux
Node name:      my_host
Release:        2.6.18-274.el5
Version:        #1 SMP Fri Jul 8 17:36:59 EDT 2011
Machine:        x86_64
Instance name: orainst
Redo thread mounted by this instance: 1
Oracle process number: 32
Unix process pid: 21475, image: oracle@my_host (J000)


*** 2016-03-15 02:06:53.220
*** SESSION ID:(178.24245) 2016-03-15 02:06:53.220
*** CLIENT ID:() 2016-03-15 02:06:53.220
*** SERVICE NAME:(SYS$USERS) 2016-03-15 02:06:53.220
*** MODULE NAME:() 2016-03-15 02:06:53.220
*** ACTION NAME:() 2016-03-15 02:06:53.220

Dump continued from file: /software/oracle/diag/rdbms/orainst/orainst/trace/orainst_j000_21475.trc
ORA-00600: internal error code, arguments: [13013], [5001], [32001], [37749294], [16], [37749294], [17], [], [], [], [], []

========= Dump for incident 71006 (ORA 600 [13013]) ========

*** 2016-03-15 02:06:53.221
----- Current SQL Statement for this session (sql_id=911naufz7sfrr) -----
MERGE INTO DIM_CAMPAIGNS TGT USING (SELECT CAMPAIGN_ID, CATEGORY_ID, CAMPAIGN_NAME, STATUS, SUBSCRIBER_REQ_FLAG, WELCOME_BACK_FLAG, DEFAULT_CAMPAIGN_FLAG, ITEM_ID FROM TEMP_PSMS_CAMPAIGNS) SRC ON (SRC.CAMPAIGN_ID = TGT.CAMPAIGN_ID) WHEN MATCHED THEN UPDATE SET TGT.CATEGORY_ID = SRC.CATEGORY_ID, TGT.CAMPAIGN_NAME = SRC.CAMPAIGN_NAME, TGT.ACTIVATION_FLAG = SRC.STATUS, TGT.SUBSCRIBER_REQ_FLAG = SRC.SUBSCRIBER_REQ_FLAG, TGT.WELCOME_BACK_FLAG = SRC.WELCOME_BACK_FLAG, TGT.DEFAULT_CAMPAIGN_FLAG = SRC.DEFAULT_CAMPAIGN_FLAG, TGT.ITEM_ID = SRC.ITEM_ID WHEN NOT MATCHED THEN INSERT (TGT.CAMPAIGN_ID, TGT.CATEGORY_ID, TGT.CAMPAIGN_NAME, TGT.ACTIVATION_FLAG, TGT.SUBSCRIBER_REQ_FLAG, TGT.WELCOME_BACK_FLAG, TGT.DEFAULT_CAMPAIGN_FLAG, TGT.ITEM_ID) VALUES (SRC.CAMPAIGN_ID, SRC.CATEGORY_ID, SRC.CAMPAIGN_NAME, SRC.STATUS, SRC.SUBSCRIBER_REQ_FLAG, SRC.WELCOME_BACK_FLAG, SRC.DEFAULT_CAMPAIGN_FLAG, SRC.ITEM_ID)



There are many incident files, all are with same ORA-00600 Error
oracle@my_host:/software/oracle/diag/rdbms/orainst/orainst/incident>% find . type f -name "*.trc" | xargs grep "ORA-00600"
./incdir_72323/orainst_j000_14429_i72323.trc:ORA-00600: internal error code, arguments: [13013], [5001], [32001], [37749294], [16], [37749294], [17], [], [], [], [], []
./incdir_71006/orainst_j000_21475_i71006.trc:ORA-00600: internal error code, arguments: [13013], [5001], [32001], [37749294], [16], [37749294], [17], [], [], [], [], []
./incdir_72056/orainst_j000_17111_i72056.trc:ORA-00600: internal error code, arguments: [13013], [5001], [32001], [37749294], [16], [37749294], [17], [], [], [], [], []
./incdir_72059/orainst_j000_20690_i72059.trc:ORA-00600: internal error code, arguments: [13013], [5001], [32001], [37749294], [16], [37749294], [17], [], [], [], [], []
./incdir_72321/orainst_j000_11053_i72321.trc:ORA-00600: internal error code, arguments: [13013], [5001], [32001], [37749294], [16], [37749294], [17], [], [], [], [], []
./incdir_66908/orainst_j000_16417_i66908.trc:ORA-00600: internal error code, arguments: [13013], [5001], [32001], [37749294], [16], [37749294], [17], [], [], [], [], []
./incdir_72318/orainst_j000_7252_i72318.trc:ORA-00600: internal error code, arguments: [13013], [5001], [32001], [37749294], [16], [37749294], [17], [], [], [], [], []

===========================
Oracle Metalink.
===========================
Search In Oracle Metalink is leading to a related document:

New and Improved: ORA-600 [13013] "Unable to get a Stable set of Records" (Doc ID 1438920.1)
ERROR:

Format: ORA-600 [13013] [a] [b] [c] [d] [e] [f]

DESCRIPTION:

During the execution of an UPDATE statement, after several attempts (Arg [a] passcount) we are unable to get a stable set of rows that conform to the WHERE clause.

ARGUMENTS:

6 Argument format
=================

This format relates to Oracle Server 8.0.3 and above

Arg [a] Passcount
Arg [b] Data Object number
Arg [c] Tablespace Decimal Relative DBA (RDBA) of block containing the row to be updated
Arg [d] Row Slot number
Arg [e] Decimal RDBA of block being updated (Typically same as [c])
Arg [f] Code


IMPACT:

PROCESS FAILURE
POSSIBLE INDEX CORRUPTION

SUGGESTIONS:

This error could indicate a corrupt index.

Check for corrupted indices using the following command :

ANALYZE TABLE <table_name> VALIDATE STRUCTURE CASCADE;

Where <table_name> is the table being updated.

Drop and recreate any indexes that show problems.

===========================
Resolution
===========================

SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS WHERE DATA_OBJECT_ID = 32001;

OWNER                          OBJECT_NAME                    OBJECT_TYPE
------------------------------ ------------------------------ ---------------------------
MY_USER                        DIM_CAMPAIGNS                  TABLE


SELECT owner FROM dba_tables WHERE table_name = 'DIM_CAMPAIGNS';

OWNER
------------------------------
MY_USER


A. Check the index structure:


SQL> SELECT INDEX_NAME FROM USER_INDEXES WHERE TABLE_NAME = 'DIM_CAMPAIGNS';

INDEX_NAME
------------------------------
CAMPAIGNS_PK


SET LONG 1000
SET LINESIZE 200
SELECT DBMS_METADATA.get_dependent_ddl('INDEX','DIM_CAMPAIGNS') AS ddl_cmd FROM DUAL;

  CREATE UNIQUE INDEX "MY_USER"."CAMPAIGNS_PK" ON "MY_USER"."DIM_CAMPAIGNS" ("CAMPAIGN_ID")
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "DWH_INDEX";
  

B. Rebuild the Index
ANALYZE TABLE MY_USER.DIM_CAMPAIGNS VALIDATE STRUCTURE CASCADE;

There is no output

ALTER INDEX CAMPAIGNS_PK REBUILD ONLINE;

Index was rebuild.

C. Rebuild table.
If issue still persist, need to rebuild the table.
To get the full table Create statement:

SET LONG 1000
SET LINESIZE 200


SELECT DBMS_METADATA.get_ddl('TABLE','DIM_CAMPAIGNS') AS ddl_cmd FROM DUAL;


No comments:

Post a Comment