IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    CON$ ORA-600 kdsgrp1

    惜分飞发表于 2016-12-16 15:39:20
    love 0

    联系:手机(13429648788) QQ(107644445)

    链接:http://www.orasos.com/con-ora-600-kdsgrp1.html

    标题:CON$ ORA-600 kdsgrp1

    作者:惜分飞©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]

    数据库报ORA 600 kdsgrp1错误
    数据库报ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []错

    Thread 1 advanced to log sequence 23861 (LGWR switch)
      Current log# 7 seq# 23861 mem# 0: /oradata/easdb/redo07.log
    Tue Nov 15 10:00:42 2016
    Errors in file /u01/oracle/diag/rdbms/easdb/easdb/trace/easdb_dw00_3165.trc  (incident=908262):
    ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []
    Incident details in: /u01/oracle/diag/rdbms/easdb/easdb/incident/incdir_908262/easdb_dw00_3165_i908262.trc
    Tue Nov 15 10:00:55 2016
    Use ADRCI or Support Workbench to package the incident.
    See Note 411.1 at My Oracle Support for error and packaging details.
    Tue Nov 15 10:00:56 2016
    Errors in file /u01/oracle/diag/rdbms/easdb/easdb/trace/easdb_dw00_3165.trc  (incident=908263):
    ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []
    ORA-06512: at "SYS.KUPW$WORKER", line 1751
    ORA-06512: at line 2
    Incident details in: /u01/oracle/diag/rdbms/easdb/easdb/incident/incdir_908263/easdb_dw00_3165_i908263.trc
    Use ADRCI or Support Workbench to package the incident.
    See Note 411.1 at My Oracle Support for error and packaging details.
    DW00 terminating with fatal err=600, pid=40, wid=1, job SYSTEM.
    Tue Nov 15 10:01:01 2016
    Thread 1 advanced to log sequence 23862 (LGWR switch)
      Current log# 2 seq# 23862 mem# 0: /oradata/easdb/redo02.log
    Tue Nov 15 10:01:23 2016
    Errors in file /u01/oracle/diag/rdbms/easdb/easdb/trace/easdb_dm00_3163.trc  (incident=908254):
    ORA-31671: Worker process DW00 had an unhandled exception.
    ORA-00600: internal error code, arguments: [kdsgrp1], [], [], [], [], [], [], [], [], [], [], []
    ORA-06512: at "SYS.KUPW$WORKER", line 1751
    ORA-06512: at line 2
    Incident details in: /u01/oracle/diag/rdbms/easdb/easdb/incident/incdir_908254/easdb_dm00_3163_i908254.trc
    Use ADRCI or Support Workbench to package the incident.
    See Note 411.1 at My Oracle Support for error and packaging details.
    Tue Nov 15 10:01:26 2016
    Tue Nov 15 10:01:28 2016
    Thread 1 advanced to log sequence 23863 (LGWR switch)
      Current log# 4 seq# 23863 mem# 0: /oradata/easdb/redo04.log
    

    trace文件中信息

    *** 2016-11-15 10:00:35.977
    * kdsgrp1-1: *************************************************
                row 0x004459e6.26 continuation at
                0x004459e6.26 file# 1 block# 285158 slot 38 not found
    KDSTABN_GET: 0 ..... ntab: 1
    curSlot: 38 ..... nrows: 208
    kdsgrp - dump CR block dba=0x004459e6
    Block header dump:  0x004459e6
     Object id on Block? Y
     seg/obj: 0x1c  csc: 0x01.c712f743  itc: 3  flg: -  typ: 1 - DATA
         fsl: 0  fnx: 0x0 ver: 0x01
    
     Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
    0x01   0x000b.015.0036d715  0x00c01bba.0fbd.02  C---    0  scn 0x0001.c6b4cb1a
    0x02   0x000c.004.00044d36  0x04c0dd93.3eec.33  C---    0  scn 0x0001.c6d2c65b
    0x03   0x000d.008.00008eb9  0x04c0777a.10e3.02  --U-    2  fsc 0x0056.c7346f21
    

    确定报错对象和确认异常

    SQL> select object_name from dba_objects where object_id=28;
    
    OBJECT_NAME
    ---------------------------------------------------------
    CON$
    
    SQL> ANALYZE TABLE sys.CON$ VALIDATE STRUCTURE CASCADE online;
    ANALYZE TABLE sys.CON$ VALIDATE STRUCTURE CASCADE online
    *
    ERROR at line 1:
    ORA-01499: table/index cross reference failure - see trace file
    
    
    SQL> SET LINES 122
    SQL> COL INDEX_OWNER FOR A20
    SQL> COL INDEX_NAME FOR A30
    SQL> COL TABLE_OWNER FOR A20
    SQL> COL COLUMN_NAME FOR A25
    SQL> SELECT TABLE_OWNER,INDEX_NAME,COLUMN_NAME,COLUMN_POSITION
    2  FROM Dba_Ind_Columns
    3  WHERE table_name = upper('&TABLE_NAME') order by TABLE_OWNER,INDEX_OWNER,INDEX_NAME,COLUMN_POSITION;
    Enter value for table_name: CON$
    old   3:  WHERE table_name = upper('&TABLE_NAME') order by TABLE_OWNER,INDEX_OWNER,INDEX_NAME,COLUMN_POSITION
    new   3:  WHERE table_name = upper('CON$') order by TABLE_OWNER,INDEX_OWNER,INDEX_NAME,COLUMN_POSITION
    
    TABLE_OWNER	     INDEX_NAME 		    COLUMN_NAME 	      COLUMN_POSITION
    -------------------- ------------------------------ ------------------------- ---------------
    SYS		     I_CON1			    OWNER#				    1
    SYS		     I_CON1			    NAME				    2
    SYS		     I_CON2			    CON#				    1
    
    
    SQL> select owner#,name from con$
    2    minus
    3   select /*+ full(t) */owner#,name from con$ t;
    
    no rows selected
    
    SQL> select /*+ full(t) */owner#,name from con$ t
    2    minus
    3   select owner#,name from con$  ;
    
    no rows selected
    
    SQL> select /*+ full(t) */ con# from con$ t
    2    minus
    3   select con# from con$ ;
    
    no rows selected
    
    SQL> select con# from con$
    2    minus
    3   select /*+ full(t) */ con# from con$ t   ;
    
          CON#
    ----------
       1037224
       1037225
       1037386
       1037387
       1037388
       ……
       1037846
    
    62 rows selected.
    

    通过上述分析,可以确定是由于CON$和I_CON2数据不一致,而且是index的数据比表中多了62条.针对这样情况,考虑通过重建index来解决.

    尝试rebuild index

    SQL> alter index I_CON2 rebuild online;
    alter index I_CON2 rebuild online
    *
    ERROR at line 1:
    ORA-00701: object necessary for warmstarting database cannot be altered
    
    
    SQL>   
    SQL> 
    SQL> 
    SQL> 
    SQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> startup upgrade
    ORACLE instance started.
    
    Total System Global Area 2421825536 bytes
    Fixed Size                  2215744 bytes
    Variable Size            1828716736 bytes
    Database Buffers          570425344 bytes
    Redo Buffers               20467712 bytes
    Database mounted.
    Database opened.
    SQL> alter index I_CON2 rebuild;                  
    alter index I_CON2 rebuild
    *
    ERROR at line 1:
    ORA-00701: object necessary for warmstarting database cannot be altered
    

    因为是数据库核心index,无法直接rebuild解决,只能通过bootstrap$核心index(I_OBJ1,I_USER1,I_FILE#_BLOCK#,I_IND1,I_TS#,I_CDEF1等)异常恢复—ORA-00701错误解决 方式解决

    • 记录一次ORA-600[13013]处理过程
    • 分享一次ORA-01113 ORA-01110故障处理过程
    • ORA-00600[17182],ORA-00600[25027],ORA-00600[kghfrempty:ds]故障处理
    • MON_MODS$表ORA-600 13013报错处理
    • ORA-600 999
    • 存储异常导致数据库不能启动恢复
    • Oracle bug ORA-600 k2vcbk_2故障恢复
    • ORACLE 12C ORA-07445[ktuHistRecUsegCrtMain()+1173]恢复
    • 记录一次 ORA-600 2663 故障恢复
    • 记录一次oer 8102.2处理
    • 记录一次数据库异常导致ipc未释放案例
    • 使用bbed解决ORA-00600[2662]
    • 存储异常导致ORA-10562故障恢复
    • ORA-1502问题分析解决
    • 强制关机导致数据库无法正常启动恢复


沪ICP备19023445号-2号
友情链接