Tuesday, 23 July 2013

ORA-00600: internal error code, arguments: [17059]

Getting ORA-600 [17059] on the database alert log file

Problem Explanation:

ORA-600 [17059] is a memory corruption error that occurs while building a table to hold the list of child cursor dependencies relating to a given parent cursor and we exceed the maximum possible size of the table.
identify why so many child cursors have been created, can you please check V$SQLAREA for a statement using a excessive number of child cursors, e.g.:

connect / as sysdba
spool cursor_info.txt
select version_count, sql_id, sql_text from v$sqlarea
where version_count > 5000 order by version_count;

and then for the statement with the largest version count, identify why they are not getting shared from V$SQL_SHARED_CURSOR, e.g.:

select * from v$sql_shared_cursor where address in (select address from v$sqlarea where sql_id = '<SQL_ID from above>');


Alert Log File shows;

Mon Jan 18 16:32:47 2010
Errors in file /orasys/ipay/udump/ipay_ora_24069.trc:
ORA-00600: internal error code, arguments: [17059], [0x4633429D8], [], [], [], [], [], []
Mon Jan 18 16:32:52 2010
Errors in file /orasys/ipay/udump/ipay_ora_24071.trc:
ORA-00600: internal error code, arguments: [17059], [0x4633429D8], [], [], [], [], [], []
Mon Jan 18 16:32:55 2010
Errors in file /orasys/ipay/udump/ipay_ora_24117.trc:
ORA-00600: internal error code, arguments: [17059], [0x4633429D8], [], [], [], [], [], []
Mon Jan 18 16:32:58 2010
Errors in file /orasys/ipay/udump/ipay_ora_24073.trc:


Trace Files Shows:

parent=463342af0 maxchild=32770 plk=46e81ca48 ppn=n
cursor instantiation=ffffffff7a730318 used=1263817964
child#32769(0) pcs=40d6be768
 clk=0 ci=0 pn=0 ctx=0
kgsccflg=0 llk[ffffffff7a730320,ffffffff7a730320] idx=0
xscflg=28 fl2=0 fl3=82080 fl4=0
sharing failure(s)=400
No bind info: cannot access child information block
and the oacdefs are not stored in the instantiation
Frames pfr 0 siz=0 efr 0 siz=0
Cursor frame dump
Session cached cursors


Workaround:
you can stop the ORA-600 [17059] errors occurring by flushing the shared pool using:
connect / as sysdba
alter system flush shared_pool;
alter system flush shared_pool;
alter system flush shared_pool;
exit


Solution:
Patch 5705795 would rectify the issue however it conflicts with patch 4367986.
A merged version of the patches is available for download from My Oracle Support as patch 7007477

No comments:

Post a comment