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

    ORA-600 kcbz_check_objd_typ_N恢复

    惜分飞发表于 2016-09-28 14:41:26
    love 0

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

    链接:http://www.orasos.com/ora-600-kcbz_check_objd_typ_n%e6%81%a2%e5%a4%8d.html

    标题:ORA-600 kcbz_check_objd_typ_N恢复

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

    客户数据库异常(ORA-600 kcbz_check_objd_typ_1),让我们远程给分析处理
    ORA-600 kcbz_check_objd_typ_1异常

    Mon Aug  8 12:19:28 2016
    Completed: ALTER DATABASE OPEN
    Mon Aug  8 12:19:29 2016
    db_recovery_file_dest_size of 20480 MB is 0.00% used. This is a
    user-specified limit on the amount of space that will be used by this
    database for recovery-related files, and does not reflect the amount of
    space available in the underlying filesystem or ASM diskgroup.
    Mon Aug  8 12:19:33 2016
    Errors in file /home/oracle/admin/RT/bdump/rt_smon_1514.trc:
    ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_1], [0], [0], [1], [], [], [], []
    Mon Aug  8 12:20:21 2016
    Shutting down archive processes
    Mon Aug  8 12:20:26 2016
    ARCH shutting down
    ARC3: Archival stopped
    Mon Aug  8 13:12:25 2016
    Thread 1 advanced to log sequence 13804
      Current log# 3 seq# 13804 mem# 0: /home/oracle/product/10.2.0/oradata/RT/redo03a.log
    Mon Aug  8 14:01:37 2016
    Thread 1 advanced to log sequence 13805
      Current log# 2 seq# 13805 mem# 0: /home/oracle/product/10.2.0/oradata/RT/redo02a.log
    Mon Aug  8 14:20:51 2016
    Errors in file /home/oracle/admin/RT/bdump/rt_smon_1514.trc:
    ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_1], [0], [0], [1], [], [], [], []
    Mon Aug  8 15:54:47 2016
    Thread 1 advanced to log sequence 13808
      Current log# 2 seq# 13808 mem# 0: /home/oracle/product/10.2.0/oradata/RT/redo02a.log
    Mon Aug  8 16:21:48 2016
    Errors in file /home/oracle/admin/RT/bdump/rt_smon_1514.trc:
    ORA-00600: internal error code, arguments: [kcbz_check_objd_typ_1], [0], [0], [1], [], [], [], []
    Mon Aug  8 16:22:05 2016
    Errors in file /home/oracle/admin/RT/bdump/rt_pmon_1500.trc:
    ORA-00474: SMON process terminated with error
    

    这里比较明显,数据库报大量ORA-600 kcbz_check_objd_typ_1错误之后,然后smon进程终止,实例crash.

    smon trace文件

    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
    With the Partitioning, OLAP and Data Mining options
    ORACLE_HOME = /home/oracle/product/10.2.0/db_1
    System name:	SunOS
    Node name:	st104
    Release:	5.10
    Version:	Generic_141445-09
    Machine:	i86pc
    Instance name: RT
    Redo thread mounted by this instance: 1
    Oracle process number: 12
    Unix process pid: 1514, image: oracle@st104 (SMON)
    
    *** 2016-08-08 12:19:26.868
    *** SERVICE NAME:() 2016-08-08 12:19:26.868
    *** SESSION ID:(383.1) 2016-08-08 12:19:26.868
    Dead transaction 0x003d.002.0000f964 recovered by SMON
    Dead transaction 0x0041.017.00004d55 recovered by SMON
    Dead transaction 0x0047.002.0000180c recovered by SMON
    Dead transaction 0x004c.01c.00001b57 recovered by SMON
    *** SESSION ID:(383.1) 2016-08-08 12:19:27.470
    DATA seg.obj=0, on-disk obj=925949, dsflg=0, dsobj=923715, cls=4
    Formatted dump of block:
    buffer tsn: 4 rdba: 0x0100336b (4/13163)
    scn: 0x09c6.b2c7f7a2 seq: 0x02 flg: 0x04 tail: 0xf7a20602
    frmt: 0x02 chkval: 0x649b type: 0x06=trans data
    Hex dump of block: st=0, typ_found=1
    
    *** SESSION ID:(383.1) 2016-08-08 12:19:34.244
    DATA seg.obj=0, on-disk obj=925950, dsflg=0, dsobj=923671, cls=4
    Formatted dump of block:
    buffer tsn: 4 rdba: 0x01003343 (4/13123)
    scn: 0x09c6.b2c7f7dc seq: 0x02 flg: 0x04 tail: 0xf7dc0602
    frmt: 0x02 chkval: 0x8013 type: 0x06=trans data
    Hex dump of block: st=0, typ_found=1
    
    *** SESSION ID:(383.1) 2016-08-08 12:19:35.197
    DATA seg.obj=0, on-disk obj=925941, dsflg=0, dsobj=923657, cls=4
    Formatted dump of block:
    buffer tsn: 7 rdba: 0x01c03d53 (7/15699)
    scn: 0x09c6.b2c7f570 seq: 0x02 flg: 0x04 tail: 0xf5700602
    frmt: 0x02 chkval: 0xe5c5 type: 0x06=trans data
    Hex dump of block: st=0, typ_found=1
    *** SESSION ID:(383.1) 2016-08-08 12:19:38.965
    DATA seg.obj=0, on-disk obj=925948, dsflg=0, dsobj=923656, cls=4
    Formatted dump of block:
    buffer tsn: 7 rdba: 0x01c03a6b (7/14955)
    scn: 0x09c6.b2c7f745 seq: 0x02 flg: 0x04 tail: 0xf7450602
    frmt: 0x02 chkval: 0x58c5 type: 0x06=trans data
    Hex dump of block: st=0, typ_found=1
    

    这里可以看出来有block中的obj和dataobj不匹配.

    查询seg$.type=3
    type=3为临时对象,由于异常原因导致smon在清理temp对象无法正常完成,从而使得smon终止,实例crash.

    SQL> select file#, block#, ts# from seg$ where type# = 3;
    
         FILE#     BLOCK#        TS#
    ---------- ---------- ----------
             4      13163          4
             4      13123          4
             7      15699          7
             7      14955          7
    

    ORA-600 kcbz_check_objd_typ_1处理方法

    1) Check tablespace bitmap
    
    
    SQL> oradebug setmypid 
    SQL> exec dbms_space_admin.tablespace_verify('&TBSP_NAME') 
    SQL> oradebug tracefile_name 
    
    or if the tablespace involved is an ASSM tablespace: 
    
    SQL> oradebug setmypid 
    SQL> exec dbms_space_admin.assm_tablespace_verify ('&TBSP_NAME',dbms_space_admin.TS_VERIFY_BITMAPS) 
    SQL> oradebug tracefile_name
    
    I am expecting to fail 
    
    2) Corrupt these temp segments 
    
    SQL> exec dbms_space_admin.segment_corrupt('&TBSP_NAME', &FILE#, &BLOCK#) 
    
    3) Drop them 
    
    SQL> exec dbms_space_admin.segment_drop_corrupt('&TBSP_NAME', &FILE#, &BLOCK#) 
    
    4) Rebuild tablespace bitmap
    
    
    exec DBMS_SPACE_ADMIN.TABLESPACE_REBUILD_BITMAPS('&TBSP_NAME')
    
    
    5) Verify the tablespace again 
    
    SQL> oradebug setmypid 
    SQL> exec dbms_space_admin.tablespace_verify('&TBSP_NAME') 
    SQL> oradebug tracefile_name 
    
    or if the tablespace involved is an ASSM tablespace: 
    
    SQL> oradebug setmypid 
    SQL> exec dbms_space_admin.assm_tablespace_verify('&TBSP_NAME',dbms_space_admin.TS_VERIFY_BITMAPS) 
    SQL> oradebug tracefile_name 
    
    • 表空间online出现ORA-00600[kcbz_check_objd_typ]处理过程
    • ORA-600 4042
    • ORA-600 999
    • MON_MODS$表ORA-600 13013报错处理
    • ORA-01172 ORA-01151 故障恢复
    • ORA-00354 ORA-00353 ORA-00312异常处理
    • 记录一次ORA-00600[kdxlin:psno out of range]/ORA-00600[3020]/ORA-00600[4000]/ORA-00600[4193]的数据库恢复
    • ORA-00600[kcfrbd_3]故障解决
    • undo segment header坏块异常恢复
    • db_block_checksum实质是通过flg_kcbh来控制block checksum
    • ORA-00600[17182],ORA-00600[25027],ORA-00600[kghfrempty:ds]故障处理
    • 数据库报ORA-00607/ORA-00600[4194]错误
    • table中各种类型block坏块是否能被跳过
    • 存储异常导致数据库不能启动恢复
    • ORA-600 kghstack_free2异常恢复


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