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:
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