客户10.2.0.4环境出现ORA-600(16608)错误。
详细错误信息如下:
Sun DEC 19 11:17:41 2010 Errors IN file /u01/app/oracle/admin/orcl/bdump/orcl_j005_5937.trc: ORA-00600: internal error code, arguments: [16608], [2], [3], [0x8000002C4FA00DC0], [], [], [], [] |
检查对应的TRACE文件,发现数据库在进行索引的收缩:
Dump file /u01/app/oracle/admin/orcl/bdump/orcl_j005_5937.trc Oracle DATABASE 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production WITH the Partitioning, OLAP, DATA Mining AND REAL Application Testing options ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1 System name: Linux Node name: DBSERVER Release: 2.6.28.10-vs1.0 Version: #1 SMP Thu Jun 30 21:18:27 CST 2011 Machine: ia64 Instance name: orcl Redo thread mounted BY this instance: 1 Oracle process NUMBER: 45 Unix process pid: 5937, image: oracle@DBSERVER (J005) *** ACTION NAME:(AUTO_SPACE_ADVISOR_JOB) 2010-12-19 11:17:41.736 *** MODULE NAME:(DBMS_SCHEDULER) 2010-12-19 11:17:41.736 *** SERVICE NAME:(SYS$USERS) 2010-12-19 11:17:41.736 *** SESSION ID:(1069.3) 2010-12-19 11:17:41.736 *** 2010-12-19 11:17:41.736 ksedmp: internal OR fatal error ORA-00600: internal error code, arguments: [16608], [2], [3], [0x8000002C4FA00DC0], [], [], [], [] CURRENT SQL statement FOR this SESSION: ALTER INDEX "U1"."SYS_IQ0000051623$$" shrink SPACE CHECK ----- PL/SQL Call Stack ----- object line object handle NUMBER name 0x8000002c3fc35960 526 SYS.WRI$_ADV_OBJSPACE_TREND_T 0x8000002c3fc35960 1660 SYS.WRI$_ADV_OBJSPACE_TREND_T 0x8000002c3fea1e98 1535 package body SYS.PRVT_ADVISOR 0x8000002c3fea1e98 1618 package body SYS.PRVT_ADVISOR 0x8000002c3fc7e3a8 186 package body SYS.DBMS_ADVISOR 0x8000002c3fdadcc0 1500 package body SYS.DBMS_SPACE 0x8000002c3fdadcc0 1566 package body SYS.DBMS_SPACE ----- Call Stack Trace ----- calling CALL entry argument VALUES IN hex location TYPE point (? means dubious VALUE) -------------------- -------- -------------------- ---------------------------- ksedst()+64 ???? ksedst1() 000000000 ? 600FFFFFFFAF6800 ? ksedmp()+1344 ???? ksedst() 000000000 ? C000000000000C1E ? 4000000000410140 ? 000000000 ? 600FFFFFFFAF6800 ? C000000000000185 ? ksfdmp()+48 ???? ksedmp() 000000003 ? kgeriv()+432 ???? ksfdmp() 60000000002352B0 ? 000000003 ? C000000000000716 ? 40000000050614B0 ? 000000003 ? 600FFFFFFFAF6BA0 ? C000000000000205 ? 4000000000453EB0 ? kgeasi()+688 ???? kgeriv() 60000000002352B0 ? 6000000000236368 ? 0000040E0 ? 000000003 ? 600FFFFFFFAF6BF8 ? kglsscn()+1616 ???? kgeasi() 600FFFFFFFAF6BD0 ? 600FFFFFFFAF6BE0 ? 600FFFFFFFAF6BD8 ? 600FFFFFFFAF6BE8 ? 000000003 ? 000000000 ? 000000002 ? 000000000 ? kqlsscn()+64 ???? kglsscn() 60000000002352B0 ? 8000002C33FC5D3A ? 8000002C4FA008F0 ? 2000000001F1D670 ? 600FFFFFFFAF7360 ? ktsk_init_shk_ctx() ???? kqlsscn() 000000000 ? +160 8000002C4FA008F0 ? 2000000001F1D670 ? 600FFFFFFFAF7360 ? C0000000000029DB ? 400000000108DFE0 ? 60000000002352B0 ? 8000002C33FC5D3A ? ktskshk1()+2288 ???? ktsk_init_shk_ctx() 600FFFFFFFAF8C50 ? 600FFFFFFFAF9140 ? 8000002C4FA00DC0 ? 8000002C5699A650 ? 8000002C4C870D48 ? 000000000 ? 600FFFFFFFAF7360 ? C0000000000014B1 ? ain_shk_drv()+5840 ???? ktskshk1() 600FFFFFFFAF9140 ? 000000000 ? 600FFFFFFFAF9000 ? C000000000001C40 ? 4000000001660FD0 ? 60000000001ADE80 ? 6000000000234930 ? 000000000 ? |
检查发现ORA-600 [16608] On Index Shrink [ID 1277283.1]描述了这个问题,Oracle描述这是一个未发布的Bug 4926805,导致问题的原因是在ASSM表空间中收缩CLUSTER索引段,而目前唯一的解决方案就是升级到11g。
好在这个问题影响的范围非常小,对于绝大部分情况,都可以忽略这个错误。想要避免这个错误,可以避免手工SHRINK CLUSTER索引,并禁止空间管理的SCHEDULER。