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

    10.2.0.4 asm磁盘头损坏数据0丢失恢复

    惜分飞发表于 2017-05-13 01:01:52
    love 0

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

    链接:http://www.orasos.com/10-2-0-4-asm%e7%a3%81%e7%9b%98%e5%a4%b4%e6%8d%9f%e5%9d%8f%e6%95%b0%e6%8d%ae0%e4%b8%a2%e5%a4%b1%e6%81%a2%e5%a4%8d.html

    标题:10.2.0.4 asm磁盘头损坏数据0丢失恢复

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

    接到朋友反馈说他们公司的10.2.0.4(无磁盘头备份)asm 磁盘头都损坏了,确定是被人恶意dd掉了磁盘头的1k,他通过查询发过来结果如下
    asm_disk_header


    分析alert日志,确定磁盘组和磁盘信息
    asm mount data磁盘组报错

    Sun Apr 16 21:39:31 2017
    NOTE: cache dismounting group 2/0x3F94036B (DATA) 
    NOTE: dbwr not being msg'd to dismount
    ERROR: diskgroup DATA was not mounted
    Sun Apr 16 21:39:31 2017
    ERROR: no PST quorum in group 3: required 2, found 0
    

    data磁盘组和磁盘信息

    Mon Mar 20 16:21:59 2017
    NOTE: Hbeat: instance not first (grp 3)
    NOTE: cache opening disk 2 of grp 2: DATA_0002 path:/dev/raw/raw21
    Mon Mar 20 16:21:59 2017
    NOTE: F1X0 found on disk 2 fcn 0.47624333
    NOTE: cache opening disk 3 of grp 2: DATA_0003 path:/dev/raw/raw22
    NOTE: cache opening disk 4 of grp 2: DATA_0004 path:/dev/raw/raw23
    NOTE: cache opening disk 5 of grp 2: DATA_0005 path:/dev/raw/raw24
    NOTE: F1X0 found on disk 5 fcn 0.47624333
    NOTE: cache opening disk 6 of grp 2: DATA_0006 path:/dev/raw/raw26
    NOTE: cache opening disk 7 of grp 2: DATA_0007 path:/dev/raw/raw25
    NOTE: F1X0 found on disk 7 fcn 0.47624333
    NOTE: cache mounting (not first) group 2/0x01B869DC (DATA)
    Mon Mar 20 16:21:59 2017
    kjbdomatt send to node 1
    Mon Mar 20 16:21:59 2017
    NOTE: attached to recovery domain 2
    Mon Mar 20 16:21:59 2017
    NOTE: opening chunk 2 at fcn 0.201560874 ABA 
    NOTE: seq=614 blk=4144 
    Mon Mar 20 16:21:59 2017
    NOTE: cache mounting group 2/0x01B869DC (DATA) succeeded
    SUCCESS: diskgroup DATA was mounted
    

    最后一次正常mount是使用了raw21-raw26的裸设备为data磁盘组,但是这里从DATA_002开始,表明很可能最初了两个asm disk被删除,继续分析alert日志

    Mon Oct 15 01:53:16 2012
    SQL> CREATE DISKGROUP DATA Normal REDUNDANCY  DISK '/dev/raw/raw6' SIZE 1144409M ,
    '/dev/raw/raw7' SIZE 1144409M   
    
    Sat Dec 27 22:41:39 2014
    SQL> alter diskgroup data add disk '/dev/raw/raw21' 
    
    Sat Dec 27 22:41:54 2014
    SQL> alter diskgroup data add disk '/dev/raw/raw22' 
    
    Sat Dec 27 22:42:14 2014
    SQL> alter diskgroup data add disk '/dev/raw/raw23' 
    
    Sat Dec 27 22:42:31 2014
    SQL> alter diskgroup data add disk '/dev/raw/raw24' 
    
    
    Sat Dec 27 22:42:51 2014
    SQL> alter diskgroup data add disk '/dev/raw/raw26' 
    
    Sat Dec 27 22:43:10 2014
    SQL> alter diskgroup data add disk '/dev/raw/raw25' 
    
    Mon Dec 29 17:55:07 2014
    SQL> alter diskgroup data drop disk 'DATA_0000' 
    
    Tue Dec 30 03:14:42 2014
    SQL> alter diskgroup data drop disk 'DATA_0001'  
    

    kfed确认磁盘头损坏情况
    通过kfed分析dd出来的磁盘头发现每个磁盘头都一样,第一个block损坏

    [oracle@rac1 xifenfei]$ kfed read raw22
    kfbh.endian:                          0 ; 0x000: 0x00
    kfbh.hard:                            0 ; 0x001: 0x00
    kfbh.type:                            0 ; 0x002: KFBTYP_INVALID
    kfbh.datfmt:                          0 ; 0x003: 0x00
    kfbh.block.blk:                       0 ; 0x004: blk=0
    kfbh.block.obj:                       0 ; 0x008: file=0
    kfbh.check:                           0 ; 0x00c: 0x00000000
    kfbh.fcn.base:                        0 ; 0x010: 0x00000000
    kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
    kfbh.spare1:                          0 ; 0x018: 0x00000000
    kfbh.spare2:                          0 ; 0x01c: 0x00000000
    7F21AF427400 00000000 00000000 00000000 00000000  [................]
      Repeat 255 times
    KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]
    
    [oracle@rac1 xifenfei]$ kfed read raw22 blkn=2|more
    kfbh.endian:                          1 ; 0x000: 0x01
    kfbh.hard:                          130 ; 0x001: 0x82
    kfbh.type:                            3 ; 0x002: KFBTYP_ALLOCTBL
    kfbh.datfmt:                          1 ; 0x003: 0x01
    kfbh.block.blk:                       2 ; 0x004: blk=2
    kfbh.block.obj:              2147483651 ; 0x008: disk=3
    kfbh.check:                  2184525105 ; 0x00c: 0x82353531
    kfbh.fcn.base:                 47625389 ; 0x010: 0x02d6b4ad
    kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
    kfbh.spare1:                          0 ; 0x018: 0x00000000
    kfbh.spare2:                          0 ; 0x01c: 0x00000000
    kfdatb10.aunum:                       0 ; 0x000: 0x00000000
    kfdatb10.shrink:                    448 ; 0x004: 0x01c0
    kfdatb10.ub2pad:                      0 ; 0x006: 0x0000
    kfdatb10.auinfo[0].link.next:         8 ; 0x008: 0x0008
    kfdatb10.auinfo[0].link.prev:         8 ; 0x00a: 0x0008
    kfdatb10.auinfo[0].free:              0 ; 0x00c: 0x0000
    kfdatb10.auinfo[0].total:           448 ; 0x00e: 0x01c0
    kfdatb10.auinfo[1].link.next:        16 ; 0x010: 0x0010
    kfdatb10.auinfo[1].link.prev:        16 ; 0x012: 0x0010
    kfdatb10.auinfo[1].free:              0 ; 0x014: 0x0000
    kfdatb10.auinfo[1].total:             0 ; 0x016: 0x0000
    kfdatb10.auinfo[2].link.next:        24 ; 0x018: 0x0018
    kfdatb10.auinfo[2].link.prev:        24 ; 0x01a: 0x0018
    kfdatb10.auinfo[2].free:              0 ; 0x01c: 0x0000
    kfdatb10.auinfo[2].total:             0 ; 0x01e: 0x0000
    kfdatb10.auinfo[3].link.next:        32 ; 0x020: 0x0020
    kfdatb10.auinfo[3].link.prev:        32 ; 0x022: 0x0020
    

    恢复思路
    确定磁盘是只被干掉了第一个block,但是由于asm 是10.2.0.4的,没有asm disk header的备份,因此也只能自己去人工kfed修复.但是考虑到该case中所有的asm disk header 全部丢失,无任何参考,完全修复比较麻烦,另外这个库也比较小,考虑修复asm disk header 关键部位,然后通过工具直接拷贝出来数据文件,在文件系统中open库的思路.主要需要恢复磁盘头基本信息(diskname,disksize,disknum,ausize,blocksize,file directory等)

    通过kfed找出来file directory

    kfbh.endian:                          1 ; 0x000: 0x01
    kfbh.hard:                          130 ; 0x001: 0x82
    kfbh.type:                            4 ; 0x002: KFBTYP_FILEDIR
    kfbh.datfmt:                          1 ; 0x003: 0x01
    kfbh.block.blk:                       2 ; 0x004: blk=2
    kfbh.block.obj:                       1 ; 0x008: file=1
    kfbh.check:                  2363360058 ; 0x00c: 0x8cde033a
    kfbh.fcn.base:                 48245591 ; 0x010: 0x02e02b57
    kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
    kfbh.spare1:                          0 ; 0x018: 0x00000000
    kfbh.spare2:                          0 ; 0x01c: 0x00000000
    kfffdb.node.incarn:                   1 ; 0x000: A=1 NUMM=0x0
    kfffdb.node.frlist.number:   4294967295 ; 0x004: 0xffffffff
    kfffdb.node.frlist.incarn:            0 ; 0x008: A=0 NUMM=0x0
    kfffdb.hibytes:                       0 ; 0x00c: 0x00000000
    kfffdb.lobytes:                 1048576 ; 0x010: 0x00100000
    kfffdb.xtntcnt:                       3 ; 0x014: 0x00000003
    kfffdb.xtnteof:                       3 ; 0x018: 0x00000003
    kfffdb.blkSize:                    4096 ; 0x01c: 0x00001000
    kfffdb.flags:                        65 ; 0x020: O=1 S=0 S=0 D=0 C=0 I=0 R=1 A=0
    kfffdb.fileType:                     15 ; 0x021: 0x0f
    kfffdb.dXrs:                         19 ; 0x022: SCHE=0x1 NUMB=0x3
    

    通过kfed找出来disk directory

    kfffde[0].xptr.au:                    4 ; 0x4a0: 0x00000004
    kfffde[0].xptr.disk:                  7 ; 0x4a4: 0x0007
    kfffde[0].xptr.flags:                 0 ; 0x4a6: L=0 E=0 D=0 S=0
    kfffde[0].xptr.chk:                  41 ; 0x4a7: 0x29
    kfffde[1].xptr.au:                17405 ; 0x4a8: 0x000043fd
    kfffde[1].xptr.disk:                  6 ; 0x4ac: 0x0006
    kfffde[1].xptr.flags:                 0 ; 0x4ae: L=0 E=0 D=0 S=0
    kfffde[1].xptr.chk:                 146 ; 0x4af: 0x92
    kfffde[2].xptr.au:               330031 ; 0x4b0: 0x0005092f
    kfffde[2].xptr.disk:                  4 ; 0x4b4: 0x0004
    kfffde[2].xptr.flags:                 0 ; 0x4b6: L=0 E=0 D=0 S=0
    kfffde[2].xptr.chk:                  13 ; 0x4b7: 0x0d
    
    
    kfddde[2].entry.incarn:               1 ; 0x3a4: A=1 NUMM=0x0
    kfddde[2].entry.hash:                 2 ; 0x3a8: 0x00000002
    kfddde[2].entry.refer.number:4294967295 ; 0x3ac: 0xffffffff
    kfddde[2].entry.refer.incarn:         0 ; 0x3b0: A=0 NUMM=0x0
    kfddde[2].dsknum:                     2 ; 0x3b4: 0x0002
    kfddde[2].state:                      2 ; 0x3b6: KFDSTA_NORMAL
    kfddde[2].ddchgfl:                    0 ; 0x3b7: 0x00
    kfddde[2].dskname:            DATA_0002 ; 0x3b8: length=9
    kfddde[2].fgname:             DATA_0002 ; 0x3d8: length=9
    kfddde[2].crestmp.hi:          33010550 ; 0x3f8: HOUR=0x16 DAYS=0x1b MNTH=0xc YEAR=0x7de
    kfddde[2].crestmp.lo:        2793310208 ; 0x3fc: USEC=0x0 MSEC=0x3a2 SECS=0x27 MINS=0x29
    kfddde[2].failstmp.hi:                0 ; 0x400: HOUR=0x0 DAYS=0x0 MNTH=0x0 YEAR=0x0
    kfddde[2].failstmp.lo:                0 ; 0x404: USEC=0x0 MSEC=0x0 SECS=0x0 MINS=0x0
    kfddde[2].timer:                      0 ; 0x408: 0x00000000
    kfddde[2].size:                 1258291 ; 0x40c: 0x00133333
    kfddde[2].srRloc.super.hiStart:       0 ; 0x410: 0x00000000
    kfddde[2].srRloc.super.loStart:       0 ; 0x414: 0x00000000
    kfddde[2].srRloc.super.length:        0 ; 0x418: 0x00000000
    kfddde[2].srRloc.incarn:              0 ; 0x41c: 0x00000000
    kfddde[2].dskrprtm:                   0 ; 0x420: 0x00000000
    kfddde[2].start0:                     0 ; 0x424: 0x00000000
    kfddde[2].size0:                1258291 ; 0x428: 0x00133333
    kfddde[2].used0:                1258229 ; 0x42c: 0x001332f5
    kfddde[2].slot:                       0 ; 0x430: 0x00000000
    
    
    kfddde[3].entry.incarn:               1 ; 0x564: A=1 NUMM=0x0
    kfddde[3].entry.hash:                 3 ; 0x568: 0x00000003
    kfddde[3].entry.refer.number:4294967295 ; 0x56c: 0xffffffff
    kfddde[3].entry.refer.incarn:         0 ; 0x570: A=0 NUMM=0x0
    kfddde[3].dsknum:                     3 ; 0x574: 0x0003
    kfddde[3].state:                      2 ; 0x576: KFDSTA_NORMAL
    kfddde[3].ddchgfl:                    0 ; 0x577: 0x00
    kfddde[3].dskname:            DATA_0003 ; 0x578: length=9
    kfddde[3].fgname:             DATA_0003 ; 0x598: length=9
    kfddde[3].crestmp.hi:          33010550 ; 0x5b8: HOUR=0x16 DAYS=0x1b MNTH=0xc YEAR=0x7de
    kfddde[3].crestmp.lo:        2811397120 ; 0x5bc: USEC=0x0 MSEC=0xa1 SECS=0x39 MINS=0x29
    kfddde[3].failstmp.hi:                0 ; 0x5c0: HOUR=0x0 DAYS=0x0 MNTH=0x0 YEAR=0x0
    kfddde[3].failstmp.lo:                0 ; 0x5c4: USEC=0x0 MSEC=0x0 SECS=0x0 MINS=0x0
    kfddde[3].timer:                      0 ; 0x5c8: 0x00000000
    kfddde[3].size:                 1258291 ; 0x5cc: 0x00133333
    kfddde[3].srRloc.super.hiStart:       0 ; 0x5d0: 0x00000000
    kfddde[3].srRloc.super.loStart:       0 ; 0x5d4: 0x00000000
    kfddde[3].srRloc.super.length:        0 ; 0x5d8: 0x00000000
    kfddde[3].srRloc.incarn:              0 ; 0x5dc: 0x00000000
    kfddde[3].dskrprtm:                   0 ; 0x5e0: 0x00000000
    kfddde[3].start0:                     0 ; 0x5e4: 0x00000000
    kfddde[3].size0:                1258291 ; 0x5e8: 0x00133333
    kfddde[3].used0:                1258128 ; 0x5ec: 0x00133290
    kfddde[3].slot:                       0 ; 0x5f0: 0x00000000
    
    kfddde[4].entry.incarn:               1 ; 0x724: A=1 NUMM=0x0
    kfddde[4].entry.hash:                 4 ; 0x728: 0x00000004
    kfddde[4].entry.refer.number:4294967295 ; 0x72c: 0xffffffff
    kfddde[4].entry.refer.incarn:         0 ; 0x730: A=0 NUMM=0x0
    kfddde[4].dsknum:                     4 ; 0x734: 0x0004
    kfddde[4].state:                      2 ; 0x736: KFDSTA_NORMAL
    kfddde[4].ddchgfl:                    0 ; 0x737: 0x00
    kfddde[4].dskname:            DATA_0004 ; 0x738: length=9
    kfddde[4].fgname:             DATA_0004 ; 0x758: length=9
    kfddde[4].crestmp.hi:          33010550 ; 0x778: HOUR=0x16 DAYS=0x1b MNTH=0xc YEAR=0x7de
    kfddde[4].crestmp.lo:        2834565120 ; 0x77c: USEC=0x0 MSEC=0x102 SECS=0xf MINS=0x2a
    kfddde[4].failstmp.hi:                0 ; 0x780: HOUR=0x0 DAYS=0x0 MNTH=0x0 YEAR=0x0
    kfddde[4].failstmp.lo:                0 ; 0x784: USEC=0x0 MSEC=0x0 SECS=0x0 MINS=0x0
    kfddde[4].timer:                      0 ; 0x788: 0x00000000
    kfddde[4].size:                 1258291 ; 0x78c: 0x00133333
    kfddde[4].srRloc.super.hiStart:       0 ; 0x790: 0x00000000
    kfddde[4].srRloc.super.loStart:       0 ; 0x794: 0x00000000
    kfddde[4].srRloc.super.length:        0 ; 0x798: 0x00000000
    kfddde[4].srRloc.incarn:              0 ; 0x79c: 0x00000000
    kfddde[4].dskrprtm:                   0 ; 0x7a0: 0x00000000
    kfddde[4].start0:                     0 ; 0x7a4: 0x00000000
    kfddde[4].size0:                1258291 ; 0x7a8: 0x00133333
    kfddde[4].used0:                1258291 ; 0x7ac: 0x00133333
    kfddde[4].slot:                       0 ; 0x7b0: 0x00000000
    
    
    kfddde[5].entry.incarn:               1 ; 0x8e4: A=1 NUMM=0x0
    kfddde[5].entry.hash:                 5 ; 0x8e8: 0x00000005
    kfddde[5].entry.refer.number:4294967295 ; 0x8ec: 0xffffffff
    kfddde[5].entry.refer.incarn:         0 ; 0x8f0: A=0 NUMM=0x0
    kfddde[5].dsknum:                     5 ; 0x8f4: 0x0005
    kfddde[5].state:                      2 ; 0x8f6: KFDSTA_NORMAL
    kfddde[5].ddchgfl:                    0 ; 0x8f7: 0x00
    kfddde[5].dskname:            DATA_0005 ; 0x8f8: length=9
    kfddde[5].fgname:             DATA_0005 ; 0x918: length=9
    kfddde[5].crestmp.hi:          33010550 ; 0x938: HOUR=0x16 DAYS=0x1b MNTH=0xc YEAR=0x7de
    kfddde[5].crestmp.lo:        2853560320 ; 0x93c: USEC=0x0 MSEC=0x178 SECS=0x21 MINS=0x2a
    kfddde[5].failstmp.hi:                0 ; 0x940: HOUR=0x0 DAYS=0x0 MNTH=0x0 YEAR=0x0
    kfddde[5].failstmp.lo:                0 ; 0x944: USEC=0x0 MSEC=0x0 SECS=0x0 MINS=0x0
    kfddde[5].timer:                      0 ; 0x948: 0x00000000
    kfddde[5].size:                 1258291 ; 0x94c: 0x00133333
    kfddde[5].srRloc.super.hiStart:       0 ; 0x950: 0x00000000
    kfddde[5].srRloc.super.loStart:       0 ; 0x954: 0x00000000
    kfddde[5].srRloc.super.length:        0 ; 0x958: 0x00000000
    kfddde[5].srRloc.incarn:              0 ; 0x95c: 0x00000000
    kfddde[5].dskrprtm:                   0 ; 0x960: 0x00000000
    kfddde[5].start0:                     0 ; 0x964: 0x00000000
    kfddde[5].size0:                1258291 ; 0x968: 0x00133333
    kfddde[5].used0:                1258255 ; 0x96c: 0x0013330f
    kfddde[5].slot:                       0 ; 0x970: 0x00000000
    
    
    kfddde[6].entry.incarn:               1 ; 0xaa4: A=1 NUMM=0x0
    kfddde[6].entry.hash:                 6 ; 0xaa8: 0x00000006
    kfddde[6].entry.refer.number:4294967295 ; 0xaac: 0xffffffff
    kfddde[6].entry.refer.incarn:         0 ; 0xab0: A=0 NUMM=0x0
    kfddde[6].dsknum:                     6 ; 0xab4: 0x0006
    kfddde[6].state:                      2 ; 0xab6: KFDSTA_NORMAL
    kfddde[6].ddchgfl:                    0 ; 0xab7: 0x00
    kfddde[6].dskname:            DATA_0006 ; 0xab8: length=9
    kfddde[6].fgname:             DATA_0006 ; 0xad8: length=9
    kfddde[6].crestmp.hi:          33010550 ; 0xaf8: HOUR=0x16 DAYS=0x1b MNTH=0xc YEAR=0x7de
    kfddde[6].crestmp.lo:        2875645952 ; 0xafc: USEC=0x0 MSEC=0x1b8 SECS=0x36 MINS=0x2a
    kfddde[6].failstmp.hi:                0 ; 0xb00: HOUR=0x0 DAYS=0x0 MNTH=0x0 YEAR=0x0
    kfddde[6].failstmp.lo:                0 ; 0xb04: USEC=0x0 MSEC=0x0 SECS=0x0 MINS=0x0
    kfddde[6].timer:                      0 ; 0xb08: 0x00000000
    kfddde[6].size:                 1258291 ; 0xb0c: 0x00133333
    kfddde[6].srRloc.super.hiStart:       0 ; 0xb10: 0x00000000
    kfddde[6].srRloc.super.loStart:       0 ; 0xb14: 0x00000000
    kfddde[6].srRloc.super.length:        0 ; 0xb18: 0x00000000
    kfddde[6].srRloc.incarn:              0 ; 0xb1c: 0x00000000
    kfddde[6].dskrprtm:                   0 ; 0xb20: 0x00000000
    kfddde[6].start0:                     0 ; 0xb24: 0x00000000
    kfddde[6].size0:                1258291 ; 0xb28: 0x00133333
    kfddde[6].used0:                1258247 ; 0xb2c: 0x00133307
    kfddde[6].slot:                       0 ; 0xb30: 0x00000000
    
    kfddde[7].entry.incarn:               1 ; 0xc64: A=1 NUMM=0x0
    kfddde[7].entry.hash:                 7 ; 0xc68: 0x00000007
    kfddde[7].entry.refer.number:4294967295 ; 0xc6c: 0xffffffff
    kfddde[7].entry.refer.incarn:         0 ; 0xc70: A=0 NUMM=0x0
    kfddde[7].dsknum:                     7 ; 0xc74: 0x0007
    kfddde[7].state:                      2 ; 0xc76: KFDSTA_NORMAL
    kfddde[7].ddchgfl:                    0 ; 0xc77: 0x00
    kfddde[7].dskname:            DATA_0007 ; 0xc78: length=9
    kfddde[7].fgname:             DATA_0007 ; 0xc98: length=9
    kfddde[7].crestmp.hi:          33010550 ; 0xcb8: HOUR=0x16 DAYS=0x1b MNTH=0xc YEAR=0x7de
    kfddde[7].crestmp.lo:        2898849792 ; 0xcbc: USEC=0x0 MSEC=0x23c SECS=0xc MINS=0x2b
    kfddde[7].failstmp.hi:                0 ; 0xcc0: HOUR=0x0 DAYS=0x0 MNTH=0x0 YEAR=0x0
    kfddde[7].failstmp.lo:                0 ; 0xcc4: USEC=0x0 MSEC=0x0 SECS=0x0 MINS=0x0
    kfddde[7].timer:                      0 ; 0xcc8: 0x00000000
    kfddde[7].size:                 1258291 ; 0xccc: 0x00133333
    kfddde[7].srRloc.super.hiStart:       0 ; 0xcd0: 0x00000000
    kfddde[7].srRloc.super.loStart:       0 ; 0xcd4: 0x00000000
    kfddde[7].srRloc.super.length:        0 ; 0xcd8: 0x00000000
    kfddde[7].srRloc.incarn:              0 ; 0xcdc: 0x00000000
    kfddde[7].dskrprtm:                   0 ; 0xce0: 0x00000000
    kfddde[7].start0:                     0 ; 0xce4: 0x00000000
    kfddde[7].size0:                1258291 ; 0xce8: 0x00133333
    kfddde[7].used0:                1258209 ; 0xcec: 0x001332e1
    kfddde[7].slot:                       0 ; 0xcf0: 0x00000000
    

    结合上述信息构造类似磁盘头文件

    kfbh.endian:                          1 ; 0x000: 0x01
    kfbh.hard:                          130 ; 0x001: 0x82
    kfbh.type:                            1 ; 0x002: KFBTYP_DISKHEAD
    kfbh.datfmt:                          1 ; 0x003: 0x01
    kfbh.block.blk:                       0 ; 0x004: T=0 NUMB=0x0
    kfbh.block.obj:              2147483648 ; 0x008: TYPE=0x8 NUMB=0x0
    kfbh.check:                  3123334821 ; 0x00c: 0xba2a4ea5
    kfbh.fcn.base:                        0 ; 0x010: 0x00000000
    kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
    kfbh.spare1:                          0 ; 0x018: 0x00000000
    kfbh.spare2:                          0 ; 0x01c: 0x00000000
    kfdhdb.driver.provstr:     ORCLDISKVOL2 ; 0x000: length=12
    kfdhdb.driver.reserved[0]:    827084630 ; 0x008: 0x314c4f56
    kfdhdb.driver.reserved[1]:            0 ; 0x00c: 0x00000000
    kfdhdb.driver.reserved[2]:            0 ; 0x010: 0x00000000
    kfdhdb.driver.reserved[3]:            0 ; 0x014: 0x00000000
    kfdhdb.driver.reserved[4]:            0 ; 0x018: 0x00000000
    kfdhdb.driver.reserved[5]:            0 ; 0x01c: 0x00000000
    kfdhdb.compat:                168820736 ; 0x020: 0x0a100000
    kfdhdb.dsknum:                        2 ; 0x024: 0x0002
    kfdhdb.grptyp:                        1 ; 0x026: KFDGTP_NORMAL
    kfdhdb.hdrsts:                        3 ; 0x027: KFDHDR_MEMBER
    kfdhdb.dskname:               DATA_0002 ; 0x028: length=9
    kfdhdb.grpname:                    DATA ; 0x048: length=4
    kfdhdb.fgname:                DATA_0002 ; 0x068: length=9
    kfdhdb.capname:                         ; 0x088: length=0
    kfdhdb.crestmp.hi:             33010550 ; 0x3f8: HOUR=0x16 DAYS=0x1b MNTH=0xc YEAR=0x7de
    kfdhdb.crestmp.lo:           2793310208 ; 0x3fc: USEC=0x0 MSEC=0x3a2 SECS=0x27 MINS=0x29
    kfdhdb.mntstmp.hi:             33049840 ; 0x0b0: HOUR=0x10 DAYS=0x7 MNTH=0x3 YEAR=0x7e1
    kfdhdb.mntstmp.lo:           1588567040 ; 0x0b4: USEC=0x0 MSEC=0x3e7 SECS=0x2a MINS=0x17
    kfdhdb.secsize:                     512 ; 0x0b8: 0x0200
    kfdhdb.blksize:                    4096 ; 0x0ba: 0x1000
    kfdhdb.ausize:                  1048576 ; 0x0bc: 0x00100000
    kfdhdb.mfact:                    113792 ; 0x0c0: 0x0001bc80
    kfdhdb.dsksize:                 1258291 ; 0x40c: 0x00133333
    kfdhdb.pmcnt:                        19 ; 0x0c8: 0x00000013
    kfdhdb.fstlocn:                       1 ; 0x0cc: 0x00000001
    kfdhdb.altlocn:                       2 ; 0x0d0: 0x00000002
    kfdhdb.f1b1locn:                      2 ; 0x0d4: 0x00000002
    

    然后通过kfed merge分别对所有磁盘头进行重构,然后通过dul去识别拷贝文件

    +DATA/XFF/spfileXFF.ora.265.869858859
    +DATA/XFF/CONTROLFILE/Current.256.796701475
    +DATA/XFF/ONLINELOG/group_1.257.796701475
    +DATA/XFF/ONLINELOG/group_2.258.796701485
    +DATA/XFF/ONLINELOG/group_3.266.796704261
    +DATA/XFF/ONLINELOG/group_4.267.796704277
    +DATA/XFF/ONLINELOG/group_5.1235.824131117
    +DATA/XFF/ONLINELOG/group_6.1115.824200515
    +DATA/XFF/ONLINELOG/group_7.1113.824200587
    +DATA/XFF/ONLINELOG/group_8.1112.824200627
    +DATA/XFF/ONLINELOG/group_9.1066.824201189
    +DATA/XFF/ONLINELOG/group_10.1063.824201207
    +DATA/XFF/ONLINELOG/group_11.1062.824201287
    +DATA/XFF/ONLINELOG/group_12.1061.824201301
    
    
    File 259 datafile size 2147491840, block size 8192
    File 260 datafile size 32186048512, block size 8192
    File 261 datafile size 6897541120, block size 8192
    File 263 datafile size 27409784832, block size 8192
    File 264 datafile size 34359730176, block size 8192
    File 280 datafile size 31457288192, block size 8192
    File 281 datafile size 31457288192, block size 8192
    File 330 datafile size 5242888192, block size 8192
    File 334 datafile size 20971528192, block size 8192
    File 382 datafile size 20971528192, block size 8192
    File 383 datafile size 20971528192, block size 8192
    File 384 datafile size 31457288192, block size 8192
    File 385 datafile size 31457288192, block size 8192
    File 386 datafile size 31457288192, block size 8192
    File 387 datafile size 4294975488, block size 8192
    File 388 datafile size 4294975488, block size 8192
    File 389 datafile size 4294975488, block size 8192
    File 390 datafile size 4294975488, block size 8192
    File 391 datafile size 4294975488, block size 8192
    File 392 datafile size 4294975488, block size 8192
    File 394 datafile size 31457288192, block size 8192
    File 491 datafile size 20971528192, block size 8192
    File 494 datafile size 20971528192, block size 8192
    File 578 datafile size 31457288192, block size 8192
    File 597 datafile size 20971528192, block size 8192
    File 613 datafile size 4294975488, block size 8192
    File 638 datafile size 31457288192, block size 8192
    File 668 datafile size 16988184576, block size 8192
    File 688 datafile size 20971528192, block size 8192
    File 740 datafile size 31457288192, block size 8192
    File 787 datafile size 31457288192, block size 8192
    File 798 datafile size 31457288192, block size 8192
    File 806 datafile size 31457288192, block size 8192
    File 810 datafile size 31457288192, block size 8192
    File 845 datafile size 31457288192, block size 8192
    File 886 datafile size 31457288192, block size 8192
    File 887 datafile size 31457288192, block size 8192
    File 889 datafile size 31457288192, block size 8192
    File 892 datafile size 31457288192, block size 8192
    File 903 datafile size 31457288192, block size 8192
    File 932 datafile size 31457288192, block size 8192
    File 933 datafile size 3145736192, block size 8192
    File 951 datafile size 20971528192, block size 8192
    File 953 datafile size 31457288192, block size 8192
    File 955 datafile size 31457288192, block size 8192
    File 963 datafile size 31457288192, block size 8192
    File 1000 datafile size 31457288192, block size 8192
    File 1001 datafile size 12035563520, block size 8192
    File 1031 datafile size 31457288192, block size 8192
    File 1033 datafile size 31457288192, block size 8192
    File 1035 datafile size 31457288192, block size 8192
    File 1037 datafile size 31457288192, block size 8192
    File 1045 datafile size 31457288192, block size 8192
    File 1073 datafile size 4294975488, block size 8192
    File 1074 datafile size 4294975488, block size 8192
    File 1075 datafile size 4294975488, block size 8192
    File 1076 datafile size 8589942784, block size 8192
    File 1077 datafile size 31457288192, block size 8192
    File 1078 datafile size 8589942784, block size 8192
    File 1079 datafile size 8589942784, block size 8192
    File 1080 datafile size 4294975488, block size 8192
    File 1081 datafile size 8589942784, block size 8192
    File 1082 datafile size 8589942784, block size 8192
    File 1083 datafile size 8589942784, block size 8192
    File 1084 datafile size 8589942784, block size 8192
    File 1085 datafile size 32365355008, block size 8192
    File 1086 datafile size 9071239168, block size 8192
    File 1116 datafile size 8589942784, block size 8192
    File 1133 datafile size 8589942784, block size 8192
    File 1219 datafile size 31457288192, block size 8192
    File 1245 datafile size 31457288192, block size 8192
    File 1249 datafile size 31457288192, block size 8192
    File 1251 datafile size 31457288192, block size 8192
    File 1322 datafile size 4294975488, block size 8192
    File 1442 datafile size 31457288192, block size 8192
    File 1468 datafile size 1048584192, block size 8192
    File 1508 datafile size 31457288192, block size 8192
    File 1554 datafile size 4294975488, block size 8192
    File 1570 datafile size 31457288192, block size 8192
    File 2004 datafile size 31457288192, block size 8192
    File 2005 datafile size 31457288192, block size 8192
    File 2344 datafile size 31457288192, block size 8192
    File 2345 datafile size 31457288192, block size 8192
    File 2348 datafile size 31457288192, block size 8192
    File 2617 datafile size 10737426432, block size 8192
    File 2618 datafile size 21474844672, block size 8192
    File 2766 datafile size 33554440192, block size 8192
    File 2782 datafile size 31457288192, block size 8192
    File 2784 datafile size 31457288192, block size 8192
    File 2893 datafile size 31457288192, block size 8192
    File 2924 datafile size 31457288192, block size 8192
    File 2925 datafile size 31457288192, block size 8192
    File 2926 datafile size 31457288192, block size 8192
    File 2983 datafile size 31457288192, block size 8192
    File 2984 datafile size 31457288192, block size 8192
    File 3634 datafile size 31457288192, block size 8192
    File 3909 datafile size 31457288192, block size 8192
    File 3917 datafile size 31457288192, block size 8192
    File 3920 datafile size 31457288192, block size 8192
    File 3922 datafile size 31457288192, block size 8192
    

    剩下的事情就比较简单了,通过把spfile,controlfile,datafile文件拷贝出来,本地启动数据库,恢复成功
    asm_open_db


    open_alert

    • kfed read asm disk header
    • 找出来asm 磁盘组中数据文件别名对应的文件号
    • 手工修复ASM DISK HEADER 异常
    • ASM DISK HEADER 备份与恢复
    • asm disk 分区表损坏恢复
    • 使用asm disk header 自动备份信息恢复异常asm disk header
    • asm disk格式化恢复
    • oracleasm createdisk重新创建asm disk后数据0丢失恢复案例
    • asm disk误设置pvid导致asm diskgroup无法mount恢复
    • asm disk header 彻底损坏恢复
    • KFED-00322 [kfbtTraverseBlock][Invalid OSM block type]
    • dd操作数据文件
    • bbed 找回被删除数据
    • oracle 12.1 RAC的ocr磁盘组异常恢复
    • 系统中数据文件第一个数据块和oracle 中第一个数据块关系



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