数据库报ORA-00600: 内部错误代码, 参数: [17059],并产生大量trace日志文件

时间:2024-01-21 13:01:28

用户反馈数据库服务器磁盘空间使用耗尽。 登录服务器后查看,发现数据库产生大量的trace日志,并在alert日志中发现ora-600错误

alert日志信息:

Fri Jul  ::
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_53832.trc (incident=):
ORA-: 内部错误代码, 参数: [], [0xDD7E984D0], [0xDD7E98D68], [0xE17AD9658], [], [], [], [], [], [], [], []
Fri Jul ::
Sweep [inc][]: completed
Sweep [inc][]: completed
Sweep [inc][]: completed
Sweep [inc][]: completed
Fri Jul ::
DDE: Problem Key 'ORA 600 [17059]' was completely flood controlled (0x6)
Further messages for this problem key will be suppressed for up to minutes

trace文件内容:

*** -- ::20.058
*** SESSION ID:(42.1215) -- ::20.058
*** CLIENT ID:(server#Thread-) -- ::20.058
*** SERVICE NAME:(SYS$USERS) -- ::20.058
*** MODULE NAME:(JDBC Thin Client) -- ::20.058
*** ACTION NAME:() -- ::20.058 LibraryHandle: Address=17ad9658 Hash=931b2cd4 LockMode=N PinMode= LoadLockMode= Status=VALD
ObjectName: Name=SELECT invokedId, timeConfig, lastTime, nextTime, nextTime2, handlerClz FROM bi_schd_timer WHERE nvl ( to_char( nextTime ), :"SYS_B_0" ) = :"SYS_B_1" or ( nextTime >= :"SYS_B_2" and nextTime < :"SYS_B_3" ) FullHashValue=ee068dcfa54c7cea1ff5ed5c931b2cd4 Namespace=SQL AREA() Type=CURSOR() Identifier= OwnerIdn=
Statistics: InvalidationCount= ExecutionCount= LoadCount= ActiveLocks= TotalLockCount= TotalPinCount=
Counters: BrokenCount= RevocablePointer= KeepDependency= KeepHandle= BucketInUse= HandleInUse=
Concurrency: DependencyMutex=17ad9708(, , , ) Mutex=17ad9780(, , , )
Flags=RON/PIN/TIM/PN0/DBN/[]
WaitersLists:
Lock=17ad96e8[17ad96e8,17ad96e8]
Pin=17ad96f8[17ad96c8,17ad96c8]
Timestamp: Current=-- ::
LibraryObject: Address=d7e984d0 HeapMask=-- Flags=EXS[] Flags2=[] PublicFlags=[]
DataBlocks:
Block: #='' name=PCUR^931b2cd4 pins= Change=NONE
Heap=17ad95a0 Pointer=d7e985b8 Extent=d7e98450 Flags=I/-/P/A/-/-
FreedLocation= Alloc=1.515625 Size=4.000000 LoadTime=
ChildTable: size=''
Child: id='' Table=d7e99380 Reference=d7e98e20 Handle=17ad9248
Child: id='' Table=d7e99380 Reference=d7e99188 Handle=17ad8558
Child: id='' Table=d7e99380 Reference=d7e869b0 Handle=17ad7868
...
Child: id='' Table=31d8e5e8 Reference=31d624c0 Handle=163589d8
NamespaceDump:
Parent Cursor: sql_id=1zxgdbk9jqb6n parent=0000000DD7E985B8 maxchild= plk=y ppn=n KGX cleanup... *** -- ::20.885
KGX Atomic Operation Log 0000000E16076E40
Mutex 0000000E17AD9780(, ) idn 931b2cd4 oper EXCL
Library Cache uid efd whr slp
oper= pt1=17ad9658 pt2= pt3=
pt4= pt5= ub4=
Trace file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_12308.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.1. - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options LibraryHandle: Address=17ad9658 Hash=931b2cd4 LockMode=N PinMode= LoadLockMode=

登陆数据库查看:

发现cursor_sharing被设置为smilar,修改为exact后错误消除

SQL> show parameter cursor

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cursor_sharing string SIMILAR SQL> alter system set cursor_sharing=exact scope=both; System altered. SQL>

其它类似错误可以参考MOS文档:

Understanding and Diagnosing ORA-600 [17059] Errors (Doc ID 1683417.1)
Bug 9689310 - Excessive child cursors / high VERSION_COUNT / ORA-600 [17059] due to bind mismatch (Doc ID 9689310.8)