偷学自Roger大神的博客
http://www.killdb.com/2013/01/15/oracle-asm-%E5%89%96%E6%9E%90%E7%B3%BB%E5%88%975-alias-directory.html
ASM磁盘组在nomount状态,起不来的情况下如何利用amdu来抽取asm files?
1. ASM alias 元数据在哪个位置呢?
1. ASM alias 元数据在哪个位置呢?
SQL> select number_kffxp file#, disk_kffxp disk#, count(disk_kffxp) extents
from x$kffxp
where group_kffxp=1
and disk_kffxp <> 65534
group by number_kffxp, disk_kffxp; 2 3 4 5
FILE#DISK# EXTENTS
---------- ---------- ----------
1 0 1
1 2 1
2 2 1
3 0 29
3 1 28
3 2 28
4 0 3
4 1 3
4 2 2
5 1 1
6 0 1 +++alias directory 位置
FILE#DISK# EXTENTS
---------- ---------- ----------
8 2 1
9 2 1
256 0 8
256 1 8
256 2 8
257 0 18
257 1 17
既然我们知道alias directory 信息是file 6,那么就可以使用kfed工具来进行读取了。
—首先我们定位到file directory
[root@node1 grid]# kfed read /dev/raw/raw5 aun=2 blkn=1|more
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 4 ; 0x002: KFBTYP_FILEDIR
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 1 ; 0x004: blk=1
kfbh.block.obj: 1 ; 0x008: file=1
kfbh.check: 3455476529 ; 0x00c: 0xcdf66331
kfbh.fcn.base: 495 ; 0x010: 0x000001ef
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: 2097152 ; 0x010: 0x00200000
kfffdb.xtntcnt: 2 ; 0x014: 0x00000002
kfffdb.xtnteof: 2 ; 0x018: 0x00000002
kfffdb.blkSize: 4096 ; 0x01c: 0x00001000
kfffdb.flags: 1 ; 0x020: O=1 S=0 S=0 D=0 C=0 I=0 R=0 A=0
kfffdb.fileType: 15 ; 0x021: 0x0f
kfffdb.dXrs: 17 ; 0x022: SCHE=0x1 NUMB=0x1
kfffdb.iXrs: 17 ; 0x023: SCHE=0x1 NUMB=0x1
kfffdb.dXsiz[0]: 4294967295 ; 0x024: 0xffffffff
kfffdb.dXsiz[1]: 0 ; 0x028: 0x00000000
kfffdb.dXsiz[2]: 0 ; 0x02c: 0x00000000
kfffdb.iXsiz[0]: 4294967295 ; 0x030: 0xffffffff
kfffdb.iXsiz[1]: 0 ; 0x034: 0x00000000
kfffdb.iXsiz[2]: 0 ; 0x038: 0x00000000
kfffdb.xtntblk: 2 ; 0x03c: 0x0002
kfffdb.break: 60 ; 0x03e: 0x003c
kfffdb.priZn: 0 ; 0x040: KFDZN_COLD
kfffdb.secZn: 0 ; 0x041: KFDZN_COLD
kfffdb.ub2spare: 0 ; 0x042: 0x0000
kfffdb.alias[0]: 4294967295 ; 0x044: 0xffffffff
kfffdb.alias[1]: 4294967295 ; 0x048: 0xffffffff
kfffdb.strpwdth: 0 ; 0x04c: 0x00
kfffdb.strpsz: 0 ; 0x04d: 0x00
kfffdb.usmsz: 0 ; 0x04e: 0x0000
kfffdb.crets.hi: 33036718 ; 0x050: HOUR=0xe DAYS=0xd MNTH=0x6 YEAR=0x7e0
kfffdb.crets.lo: 3478214656 ; 0x054: USEC=0x0 MSEC=0x56 SECS=0x35 MINS=0x33
kfffdb.modts.hi: 33036718 ; 0x058: HOUR=0xe DAYS=0xd MNTH=0x6 YEAR=0x7e0
kfffdb.modts.lo: 3478214656 ; 0x05c: USEC=0x0 MSEC=0x56 SECS=0x35 MINS=0x33
kfffdb.dasz[0]: 0 ; 0x060: 0x00
kfffdb.dasz[1]: 0 ; 0x061: 0x00
kfffdb.dasz[2]: 0 ; 0x062: 0x00
kfffdb.dasz[3]: 0 ; 0x063: 0x00
kfffdb.permissn: 0 ; 0x064: 0x00
kfffdb.ub1spar1: 0 ; 0x065: 0x00
kfffdb.ub2spar2: 0 ; 0x066: 0x0000
kfffdb.user.entnum: 0 ; 0x068: 0x0000
kfffdb.user.entinc: 0 ; 0x06a: 0x0000
kfffdb.group.entnum: 0 ; 0x06c: 0x0000
kfffdb.group.entinc: 0 ; 0x06e: 0x0000
kfffdb.spare[0]: 0 ; 0x070: 0x00000000
... ...
kfffdb.usm: ; 0x0a0: length=0
kfffde[0].xptr.au: 2 ; 0x4a0: 0x00000002
kfffde[0].xptr.disk: 0 ; 0x4a4: 0x0000
kfffde[0].xptr.flags: 0 ; 0x4a6: L=0 E=0 D=0 S=0
kfffde[0].xptr.chk: 40 ; 0x4a7: 0x28
kfffde[1].xptr.au: 34 ; 0x4a8: 0x00000022
kfffde[1].xptr.disk: 2 ; 0x4ac: 0x0002
kfffde[1].xptr.flags: 0 ; 0x4ae: L=0 E=0 D=0 S=0
kfffde[1].xptr.chk: 10 ; 0x4af: 0x0a
从上面可以看到,就位于au 2中,而我们的file 6,自然也就在block 6中,如下:
1. 首先需要找到asm alias信息, 在第二个au,第6个块里面
[root@node1 grid]# kfed read /dev/raw/raw5 aun=2 blkn=6|grep au|more
kfffde[0].xptr.au: 18 ; 0x4a0: 0x00000012 ++在第18个au里面
kfffde[1].xptr.au: 4294967295 ; 0x4a8: 0xffffffff
kfffde[2].xptr.au: 4294967295 ; 0x4b0: 0xffffffff
kfffde[3].xptr.au: 4294967295 ; 0x4b8: 0xffffffff
kfffde[4].xptr.au: 4294967295 ; 0x4c0: 0xffffffff
下面继续读取au 18 得到 alias_dir,如下:
[root@node1 grid]# kfed read /dev/raw/raw5 aun=18 blkn=1|more
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 11 ; 0x002: KFBTYP_ALIASDIR
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 1 ; 0x004: blk=1
kfbh.block.obj: 6 ; 0x008: file=6
kfbh.check: 1879851315 ; 0x00c: 0x700c4133
kfbh.fcn.base: 2582 ; 0x010: 0x00000a16
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
kffdnd.bnode.incarn: 1 ; 0x000: A=1 NUMM=0x0
kffdnd.bnode.frlist.number: 4294967295 ; 0x004: 0xffffffff
kffdnd.bnode.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0
kffdnd.overfl.number: 4294967295 ; 0x00c: 0xffffffff
kffdnd.overfl.incarn: 0 ; 0x010: A=0 NUMM=0x0
kffdnd.parent.number: 0 ; 0x014: 0x00000000
kffdnd.parent.incarn: 1 ; 0x018: A=1 NUMM=0x0
kffdnd.fstblk.number: 1 ; 0x01c: 0x00000001
kffdnd.fstblk.incarn: 1 ; 0x020: A=1 NUMM=0x0
kfade[0].entry.incarn: 1 ; 0x024: A=1 NUMM=0x0
kfade[0].entry.hash: 4053320104 ; 0x028: 0xf198c1a8
kfade[0].entry.refer.number: 2 ; 0x02c: 0x00000002
kfade[0].entry.refer.incarn: 1 ; 0x030: A=1 NUMM=0x0
kfade[0].name: CONTROLFILE ; 0x034: length=11
kfade[0].fnum: 4294967295 ; 0x064: 0xffffffff
kfade[0].finc: 4294967295 ; 0x068: 0xffffffff
kfade[0].flags: 4 ; 0x06c: U=0 S=0 S=1 U=0 F=0
kfade[0].ub1spare: 0 ; 0x06d: 0x00
kfade[0].ub2spare: 0 ; 0x06e: 0x0000
kfade[1].entry.incarn: 1 ; 0x070: A=1 NUMM=0x0
kfade[1].entry.hash: 2803485489 ; 0x074: 0xa719cb31
kfade[1].entry.refer.number: 3 ; 0x078: 0x00000003
kfade[1].entry.refer.incarn: 1 ; 0x07c: A=1 NUMM=0x0
kfade[1].name: ONLINELOG ; 0x080: length=9
kfade[1].fnum: 4294967295 ; 0x0b0: 0xffffffff
kfade[1].finc: 4294967295 ; 0x0b4: 0xffffffff
kfade[1].flags: 4 ; 0x0b8: U=0 S=0 S=1 U=0 F=0
kfade[1].ub1spare: 0 ; 0x0b9: 0x00
kfade[1].ub2spare: 0 ; 0x0ba: 0x0000
kfade[2].entry.incarn: 1 ; 0x0bc: A=1 NUMM=0x0
kfade[2].entry.hash: 710518681 ; 0x0c0: 0x2a59a799
kfade[2].entry.refer.number: 4 ; 0x0c4: 0x00000004
kfade[2].entry.refer.incarn: 1 ; 0x0c8: A=1 NUMM=0x0
kfade[2].name: DATAFILE ; 0x0cc: length=8
kfade[2].fnum: 4294967295 ; 0x0fc: 0xffffffff
kfade[2].finc: 4294967295 ; 0x100: 0xffffffff
kfade[2].flags: 4 ; 0x104: U=0 S=0 S=1 U=0 F=0
kfade[2].ub1spare: 0 ; 0x105: 0x00
kfade[2].ub2spare: 0 ; 0x106: 0x0000
kfade[3].entry.incarn: 1 ; 0x108: A=1 NUMM=0x0
kfade[3].entry.hash: 2905271101 ; 0x10c: 0xad2aeb3d
kfade[3].entry.refer.number: 5 ; 0x110: 0x00000005
kfade[3].entry.refer.incarn: 1 ; 0x114: A=1 NUMM=0x0
kfade[3].name: TEMPFILE ; 0x118: length=8
kfade[3].fnum: 4294967295 ; 0x148: 0xffffffff
kfade[3].finc: 4294967295 ; 0x14c: 0xffffffff
kfade[3].flags: 4 ; 0x150: U=0 S=0 S=1 U=0 F=0
kfade[3].ub1spare: 0 ; 0x151: 0x00
kfade[3].ub2spare: 0 ; 0x152: 0x0000
kfade[4].entry.incarn: 1 ; 0x154: A=1 NUMM=0x0
kfade[4].entry.hash: 3261836913 ; 0x158: 0xc26bae71
kfade[4].entry.refer.number: 6 ; 0x15c: 0x00000006
kfade[4].entry.refer.incarn: 1 ; 0x160: A=1 NUMM=0x0
kfade[4].name: PARAMETERFILE ; 0x164: length=13
kfade[4].fnum: 4294967295 ; 0x194: 0xffffffff
kfade[4].finc: 4294967295 ; 0x198: 0xffffffff
kfade[4].flags: 4 ; 0x19c: U=0 S=0 S=1 U=0 F=0
kfade[4].ub1spare: 0 ; 0x19d: 0x00
kfade[4].ub2spare: 0 ; 0x19e: 0x0000
kfade[5].entry.incarn: 1 ; 0x1a0: A=1 NUMM=0x0
kfade[5].entry.hash: 2413283393 ; 0x1a4: 0x8fd7c841
kfade[5].entry.refer.number: 4294967295 ; 0x1a8: 0xffffffff
kfade[5].entry.refer.incarn: 0 ; 0x1ac: A=0 NUMM=0x0
kfade[5].name: spfilenode.ora ; 0x1b0: length=14
kfade[5].fnum: 267 ; 0x1e0: 0x0000010b
kfade[5].finc: 914425797 ; 0x1e4: 0x368107c5
kfade[5].flags: 17 ; 0x1e8: U=1 S=0 S=0 U=0 F=1
kfade[5].ub1spare: 0 ; 0x1e9: 0x00
kfade[5].ub2spare: 0 ; 0x1ea: 0x0000
kfade[6].entry.incarn: 0 ; 0x1ec: A=0 NUMM=0x0
kfade[6].entry.hash: 0 ; 0x1f0: 0x00000000
kfade[6].entry.refer.number: 0 ; 0x1f4: 0x00000000
kfade[6].entry.refer.incarn: 0 ; 0x1f8: A=0 NUMM=0x0
kfade[6].name: ; 0x1fc: length=0
....省略部分内容
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 11 ; 0x002: KFBTYP_ALIASDIR
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 1 ; 0x004: blk=1
kfbh.block.obj: 6 ; 0x008: file=6
kfbh.check: 1879851315 ; 0x00c: 0x700c4133
kfbh.fcn.base: 2582 ; 0x010: 0x00000a16
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
kffdnd.bnode.incarn: 1 ; 0x000: A=1 NUMM=0x0
kffdnd.bnode.frlist.number: 4294967295 ; 0x004: 0xffffffff
kffdnd.bnode.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0
kffdnd.overfl.number: 4294967295 ; 0x00c: 0xffffffff
kffdnd.overfl.incarn: 0 ; 0x010: A=0 NUMM=0x0
kffdnd.parent.number: 0 ; 0x014: 0x00000000
kffdnd.parent.incarn: 1 ; 0x018: A=1 NUMM=0x0
kffdnd.fstblk.number: 1 ; 0x01c: 0x00000001
kffdnd.fstblk.incarn: 1 ; 0x020: A=1 NUMM=0x0
kfade[0].entry.incarn: 1 ; 0x024: A=1 NUMM=0x0
kfade[0].entry.hash: 4053320104 ; 0x028: 0xf198c1a8
kfade[0].entry.refer.number: 2 ; 0x02c: 0x00000002
kfade[0].entry.refer.incarn: 1 ; 0x030: A=1 NUMM=0x0
kfade[0].name: CONTROLFILE ; 0x034: length=11
kfade[0].fnum: 4294967295 ; 0x064: 0xffffffff
kfade[0].finc: 4294967295 ; 0x068: 0xffffffff
kfade[0].flags: 4 ; 0x06c: U=0 S=0 S=1 U=0 F=0
kfade[0].ub1spare: 0 ; 0x06d: 0x00
kfade[0].ub2spare: 0 ; 0x06e: 0x0000
kfade[1].entry.incarn: 1 ; 0x070: A=1 NUMM=0x0
kfade[1].entry.hash: 2803485489 ; 0x074: 0xa719cb31
kfade[1].entry.refer.number: 3 ; 0x078: 0x00000003
kfade[1].entry.refer.incarn: 1 ; 0x07c: A=1 NUMM=0x0
kfade[1].name: ONLINELOG ; 0x080: length=9
kfade[1].fnum: 4294967295 ; 0x0b0: 0xffffffff
kfade[1].finc: 4294967295 ; 0x0b4: 0xffffffff
kfade[1].flags: 4 ; 0x0b8: U=0 S=0 S=1 U=0 F=0
kfade[1].ub1spare: 0 ; 0x0b9: 0x00
kfade[1].ub2spare: 0 ; 0x0ba: 0x0000
kfade[2].entry.incarn: 1 ; 0x0bc: A=1 NUMM=0x0
kfade[2].entry.hash: 710518681 ; 0x0c0: 0x2a59a799
kfade[2].entry.refer.number: 4 ; 0x0c4: 0x00000004
kfade[2].entry.refer.incarn: 1 ; 0x0c8: A=1 NUMM=0x0
kfade[2].name: DATAFILE ; 0x0cc: length=8
kfade[2].fnum: 4294967295 ; 0x0fc: 0xffffffff
kfade[2].finc: 4294967295 ; 0x100: 0xffffffff
kfade[2].flags: 4 ; 0x104: U=0 S=0 S=1 U=0 F=0
kfade[2].ub1spare: 0 ; 0x105: 0x00
kfade[2].ub2spare: 0 ; 0x106: 0x0000
kfade[3].entry.incarn: 1 ; 0x108: A=1 NUMM=0x0
kfade[3].entry.hash: 2905271101 ; 0x10c: 0xad2aeb3d
kfade[3].entry.refer.number: 5 ; 0x110: 0x00000005
kfade[3].entry.refer.incarn: 1 ; 0x114: A=1 NUMM=0x0
kfade[3].name: TEMPFILE ; 0x118: length=8
kfade[3].fnum: 4294967295 ; 0x148: 0xffffffff
kfade[3].finc: 4294967295 ; 0x14c: 0xffffffff
kfade[3].flags: 4 ; 0x150: U=0 S=0 S=1 U=0 F=0
kfade[3].ub1spare: 0 ; 0x151: 0x00
kfade[3].ub2spare: 0 ; 0x152: 0x0000
kfade[4].entry.incarn: 1 ; 0x154: A=1 NUMM=0x0
kfade[4].entry.hash: 3261836913 ; 0x158: 0xc26bae71
kfade[4].entry.refer.number: 6 ; 0x15c: 0x00000006
kfade[4].entry.refer.incarn: 1 ; 0x160: A=1 NUMM=0x0
kfade[4].name: PARAMETERFILE ; 0x164: length=13
kfade[4].fnum: 4294967295 ; 0x194: 0xffffffff
kfade[4].finc: 4294967295 ; 0x198: 0xffffffff
kfade[4].flags: 4 ; 0x19c: U=0 S=0 S=1 U=0 F=0
kfade[4].ub1spare: 0 ; 0x19d: 0x00
kfade[4].ub2spare: 0 ; 0x19e: 0x0000
kfade[5].entry.incarn: 1 ; 0x1a0: A=1 NUMM=0x0
kfade[5].entry.hash: 2413283393 ; 0x1a4: 0x8fd7c841
kfade[5].entry.refer.number: 4294967295 ; 0x1a8: 0xffffffff
kfade[5].entry.refer.incarn: 0 ; 0x1ac: A=0 NUMM=0x0
kfade[5].name: spfilenode.ora ; 0x1b0: length=14
kfade[5].fnum: 267 ; 0x1e0: 0x0000010b
kfade[5].finc: 914425797 ; 0x1e4: 0x368107c5
kfade[5].flags: 17 ; 0x1e8: U=1 S=0 S=0 U=0 F=1
kfade[5].ub1spare: 0 ; 0x1e9: 0x00
kfade[5].ub2spare: 0 ; 0x1ea: 0x0000
kfade[6].entry.incarn: 0 ; 0x1ec: A=0 NUMM=0x0
kfade[6].entry.hash: 0 ; 0x1f0: 0x00000000
kfade[6].entry.refer.number: 0 ; 0x1f4: 0x00000000
kfade[6].entry.refer.incarn: 0 ; 0x1f8: A=0 NUMM=0x0
kfade[6].name: ; 0x1fc: length=0
....省略部分内容
换句话说,我要定位所有的数据文件的名称,应该是第几4个?
kfade[2] 明显,是这个,数据文件的别名
看到它在哪个块里面? 第四个 entry.refer.number: 4 ; 0x0c4: 0x00000004
++++定位datafile信息
[root@node1 grid]# kfed read /dev/raw/raw5 aun=18 blkn=4|more
++++定位控制文件
kfade[2] 明显,是这个,数据文件的别名
看到它在哪个块里面? 第四个 entry.refer.number: 4 ; 0x0c4: 0x00000004
++++定位datafile信息
[root@node1 grid]# kfed read /dev/raw/raw5 aun=18 blkn=4|more
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 11 ; 0x002: KFBTYP_ALIASDIR
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 4 ; 0x004: blk=4
kfbh.block.obj: 6 ; 0x008: file=6
kfbh.check: 248374297 ; 0x00c: 0x0ecde419
kfbh.fcn.base: 2452 ; 0x010: 0x00000994
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
kffdnd.bnode.incarn: 1 ; 0x000: A=1 NUMM=0x0
kffdnd.bnode.frlist.number: 4294967295 ; 0x004: 0xffffffff
kffdnd.bnode.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0
kffdnd.overfl.number: 4294967295 ; 0x00c: 0xffffffff
kffdnd.overfl.incarn: 0 ; 0x010: A=0 NUMM=0x0
kffdnd.parent.number: 1 ; 0x014: 0x00000001
kffdnd.parent.incarn: 1 ; 0x018: A=1 NUMM=0x0
kffdnd.fstblk.number: 4 ; 0x01c: 0x00000004
kffdnd.fstblk.incarn: 1 ; 0x020: A=1 NUMM=0x0
kfade[0].entry.incarn: 1 ; 0x024: A=1 NUMM=0x0
kfade[0].entry.hash: 2028115485 ; 0x028: 0x78e2961d
kfade[0].entry.refer.number: 4294967295 ; 0x02c: 0xffffffff
kfade[0].entry.refer.incarn: 0 ; 0x030: A=0 NUMM=0x0
kfade[0].name: SYSTEM ; 0x034: length=6
kfade[0].fnum: 259 ; 0x064: 0x00000103
kfade[0].finc: 914424923 ; 0x068: 0x3681045b
kfade[0].flags: 18 ; 0x06c: U=0 S=1 S=0 U=0 F=1
kfade[0].ub1spare: 0 ; 0x06d: 0x00
kfade[0].ub2spare: 0 ; 0x06e: 0x0000
kfade[1].entry.incarn: 1 ; 0x070: A=1 NUMM=0x0
kfade[1].entry.hash: 3544811593 ; 0x074: 0xd3498849
kfade[1].entry.refer.number: 4294967295 ; 0x078: 0xffffffff
kfade[1].entry.refer.incarn: 0 ; 0x07c: A=0 NUMM=0x0
kfade[1].name: SYSAUX ; 0x080: length=6
kfade[1].fnum: 260 ; 0x0b0: 0x00000104
kfade[1].finc: 914424953 ; 0x0b4: 0x36810479
kfade[1].flags: 18 ; 0x0b8: U=0 S=1 S=0 U=0 F=1
kfade[1].ub1spare: 0 ; 0x0b9: 0x00
kfade[1].ub2spare: 0 ; 0x0ba: 0x0000
kfade[2].entry.incarn: 1 ; 0x0bc: A=1 NUMM=0x0
kfade[2].entry.hash: 3368496939 ; 0x0c0: 0xc8c72f2b
kfade[2].entry.refer.number: 4294967295 ; 0x0c4: 0xffffffff
kfade[2].entry.refer.incarn: 0 ; 0x0c8: A=0 NUMM=0x0
kfade[2].name: UNDOTBS1 ; 0x0cc: length=8
kfade[2].fnum: 261 ; 0x0fc: 0x00000105
kfade[2].finc: 914424977 ; 0x100: 0x36810491
kfade[2].flags: 18 ; 0x104: U=0 S=1 S=0 U=0 F=1
kfade[2].ub1spare: 0 ; 0x105: 0x00
kfade[2].ub2spare: 0 ; 0x106: 0x0000
kfade[3].entry.incarn: 1 ; 0x108: A=1 NUMM=0x0
kfade[3].entry.hash: 2459924295 ; 0x10c: 0x929f7747
kfade[3].entry.refer.number: 4294967295 ; 0x110: 0xffffffff
kfade[3].entry.refer.incarn: 0 ; 0x114: A=0 NUMM=0x0
kfade[3].name: UNDOTBS2 ; 0x118: length=8
kfade[3].fnum: 263 ; 0x148: 0x00000107
kfade[3].finc: 914424999 ; 0x14c: 0x368104a7
kfade[3].flags: 18 ; 0x150: U=0 S=1 S=0 U=0 F=1
kfade[3].ub1spare: 0 ; 0x151: 0x00
kfade[3].ub2spare: 0 ; 0x152: 0x0000
kfade[4].entry.incarn: 1 ; 0x154: A=1 NUMM=0x0
kfade[4].entry.hash: 1930335742 ; 0x158: 0x730e95fe
kfade[4].entry.refer.number: 4294967295 ; 0x15c: 0xffffffff
kfade[4].entry.refer.incarn: 0 ; 0x160: A=0 NUMM=0x0
kfade[4].name: USERS ; 0x164: length=5
kfade[4].fnum: 264 ; 0x194: 0x00000108
kfade[4].finc: 914425007 ; 0x198: 0x368104af
kfade[4].flags: 18 ; 0x19c: U=0 S=1 S=0 U=0 F=1
kfade[4].ub1spare: 0 ; 0x19d: 0x00
kfade[4].ub2spare: 0 ; 0x19e: 0x0000
... ...
control的alias信息应该在block 2中:
[root@node1 grid]# kfed read /dev/raw/raw5 aun=18 blkn=2|more
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 11 ; 0x002: KFBTYP_ALIASDIR
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 2 ; 0x004: blk=2
kfbh.block.obj: 6 ; 0x008: file=6
kfbh.check: 1012261824 ; 0x00c: 0x3c55e3c0
kfbh.fcn.base: 529 ; 0x010: 0x00000211
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
kffdnd.bnode.incarn: 1 ; 0x000: A=1 NUMM=0x0
kffdnd.bnode.frlist.number: 4294967295 ; 0x004: 0xffffffff
kffdnd.bnode.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0
kffdnd.overfl.number: 4294967295 ; 0x00c: 0xffffffff
kffdnd.overfl.incarn: 0 ; 0x010: A=0 NUMM=0x0
kffdnd.parent.number: 1 ; 0x014: 0x00000001
kffdnd.parent.incarn: 1 ; 0x018: A=1 NUMM=0x0
kffdnd.fstblk.number: 2 ; 0x01c: 0x00000002
kffdnd.fstblk.incarn: 1 ; 0x020: A=1 NUMM=0x0
kfade[0].entry.incarn: 1 ; 0x024: A=1 NUMM=0x0
kfade[0].entry.hash: 2250670667 ; 0x028: 0x8626824b
kfade[0].entry.refer.number: 4294967295 ; 0x02c: 0xffffffff
kfade[0].entry.refer.incarn: 0 ; 0x030: A=0 NUMM=0x0
kfade[0].name: Current ; 0x034: length=7
kfade[0].fnum: 256 ; 0x064: 0x00000100
kfade[0].finc: 914424919 ; 0x068: 0x36810457
kfade[0].flags: 18 ; 0x06c: U=0 S=1 S=0 U=0 F=1
kfade[0].ub1spare: 0 ; 0x06d: 0x00
kfade[0].ub2spare: 0 ; 0x06e: 0x0000
kfade[1].entry.incarn: 0 ; 0x070: A=0 NUMM=0x0
kfade[1].entry.hash: 0 ; 0x074: 0x00000000
kfade[1].entry.refer.number: 0 ; 0x078: 0x00000000
kfade[1].entry.refer.incarn: 0 ; 0x07c: A=0 NUMM=0x0
kfade[1].name: ; 0x080: length=0
kfade[1].fnum: 0 ; 0x0b0: 0x00000000
kfade[1].finc: 0 ; 0x0b4: 0x00000000
kfade[1].flags: 0 ; 0x0b8: U=0 S=0 S=0 U=0 F=0
--More--
从上面信息,你可以知道目前数据库的controlfile名称为:Current.256.914424919
++++++ Redo logfile
[root@node1 grid]# kfed read /dev/raw/raw5 aun=18 blkn=3|more
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 11 ; 0x002: KFBTYP_ALIASDIR
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 3 ; 0x004: blk=3
kfbh.block.obj: 6 ; 0x008: file=6
kfbh.check: 1576130540 ; 0x00c: 0x5df1d7ec
kfbh.fcn.base: 2570 ; 0x010: 0x00000a0a
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
kffdnd.bnode.incarn: 1 ; 0x000: A=1 NUMM=0x0
kffdnd.bnode.frlist.number: 4294967295 ; 0x004: 0xffffffff
kffdnd.bnode.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0
kffdnd.overfl.number: 4294967295 ; 0x00c: 0xffffffff
kffdnd.overfl.incarn: 0 ; 0x010: A=0 NUMM=0x0
kffdnd.parent.number: 1 ; 0x014: 0x00000001
kffdnd.parent.incarn: 1 ; 0x018: A=1 NUMM=0x0
kffdnd.fstblk.number: 3 ; 0x01c: 0x00000003
kffdnd.fstblk.incarn: 1 ; 0x020: A=1 NUMM=0x0
kfade[0].entry.incarn: 1 ; 0x024: A=1 NUMM=0x0
kfade[0].entry.hash: 3190029926 ; 0x028: 0xbe23fe66
kfade[0].entry.refer.number: 4294967295 ; 0x02c: 0xffffffff
kfade[0].entry.refer.incarn: 0 ; 0x030: A=0 NUMM=0x0
kfade[0].name: group_1 ; 0x034: length=7
kfade[0].fnum: 257 ; 0x064: 0x00000101
kfade[0].finc: 914424919 ; 0x068: 0x36810457
kfade[0].flags: 18 ; 0x06c: U=0 S=1 S=0 U=0 F=1
kfade[0].ub1spare: 0 ; 0x06d: 0x00
kfade[0].ub2spare: 0 ; 0x06e: 0x0000
kfade[1].entry.incarn: 1 ; 0x070: A=1 NUMM=0x0
kfade[1].entry.hash: 3903645932 ; 0x074: 0xe8ace8ec
kfade[1].entry.refer.number: 4294967295 ; 0x078: 0xffffffff
kfade[1].entry.refer.incarn: 0 ; 0x07c: A=0 NUMM=0x0
kfade[1].name: group_2 ; 0x080: length=7
kfade[1].fnum: 258 ; 0x0b0: 0x00000102
kfade[1].finc: 914424921 ; 0x0b4: 0x36810459
kfade[1].flags: 18 ; 0x0b8: U=0 S=1 S=0 U=0 F=1
kfade[1].ub1spare: 0 ; 0x0b9: 0x00
kfade[1].ub2spare: 0 ; 0x0ba: 0x0000
kfade[2].entry.incarn: 1 ; 0x0bc: A=1 NUMM=0x0
kfade[2].entry.hash: 2444788509 ; 0x0c0: 0x91b8831d
kfade[2].entry.refer.number: 4294967295 ; 0x0c4: 0xffffffff
kfade[2].entry.refer.incarn: 0 ; 0x0c8: A=0 NUMM=0x0
kfade[2].name: group_3 ; 0x0cc: length=7
kfade[2].fnum: 265 ; 0x0fc: 0x00000109
kfade[2].finc: 914425791 ; 0x100: 0x368107bf
kfade[2].flags: 18 ; 0x104: U=0 S=1 S=0 U=0 F=1
kfade[2].ub1spare: 0 ; 0x105: 0x00
kfade[2].ub2spare: 0 ; 0x106: 0x0000
kfade[3].entry.incarn: 1 ; 0x108: A=1 NUMM=0x0
kfade[3].entry.hash: 2613692934 ; 0x10c: 0x9bc9ca06
kfade[3].entry.refer.number: 4294967295 ; 0x110: 0xffffffff
kfade[3].entry.refer.incarn: 0 ; 0x114: A=0 NUMM=0x0
kfade[3].name: group_4 ; 0x118: length=7
kfade[3].fnum: 266 ; 0x148: 0x0000010a
kfade[3].finc: 914425793 ; 0x14c: 0x368107c1
kfade[3].flags: 18 ; 0x150: U=0 S=1 S=0 U=0 F=1
kfade[3].ub1spare: 0 ; 0x151: 0x00
kfade[3].ub2spare: 0 ; 0x152: 0x0000
从上面信息, 可以知道目前该数据库有4组redo,每组1个logfile,如下:
group_1.257.914424919
group_2.258.914424921
group_3.265.914425791
group_4.266.914425793
++++++spfile
找到spfile的alias信息如下:
[root@node1 grid]# kfed read /dev/raw/raw5 aun=18 blkn=6|more
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 11 ; 0x002: KFBTYP_ALIASDIR
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 6 ; 0x004: blk=6
kfbh.block.obj: 6 ; 0x008: file=6
kfbh.check: 1131672550 ; 0x00c: 0x4373f3e6
kfbh.fcn.base: 2581 ; 0x010: 0x00000a15
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
kffdnd.bnode.incarn: 1 ; 0x000: A=1 NUMM=0x0
kffdnd.bnode.frlist.number: 4294967295 ; 0x004: 0xffffffff
kffdnd.bnode.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0
kffdnd.overfl.number: 4294967295 ; 0x00c: 0xffffffff
kffdnd.overfl.incarn: 0 ; 0x010: A=0 NUMM=0x0
kffdnd.parent.number: 1 ; 0x014: 0x00000001
kffdnd.parent.incarn: 1 ; 0x018: A=1 NUMM=0x0
kffdnd.fstblk.number: 6 ; 0x01c: 0x00000006
kffdnd.fstblk.incarn: 1 ; 0x020: A=1 NUMM=0x0
kfade[0].entry.incarn: 1 ; 0x024: A=1 NUMM=0x0
kfade[0].entry.hash: 3797981129 ; 0x028: 0xe26097c9
kfade[0].entry.refer.number: 4294967295 ; 0x02c: 0xffffffff
kfade[0].entry.refer.incarn: 0 ; 0x030: A=0 NUMM=0x0
kfade[0].name: spfile ; 0x034: length=6
kfade[0].fnum: 267 ; 0x064: 0x0000010b
kfade[0].finc: 914425797 ; 0x068: 0x368107c5
kfade[0].flags: 18 ; 0x06c: U=0 S=1 S=0 U=0 F=1
kfade[0].ub1spare: 0 ; 0x06d: 0x00
kfade[0].ub2spare: 0 ; 0x06e: 0x0000
可以看到spfile的全称为spfile.267.914425797
下面开始抽取:
--extrace spfile
--extrace controlfile
--extract datafile
--extract redo logfile
验证一下有没有坏块
--extrace spfile
[grid@node1 ~]$ amdu -dis '/dev/raw/raw*' -extract datadg01.267 -output spfile
amdu_2016_06_14_14_55_06/
[grid@node1 ~]$
[grid@node1 ~]$ ls
amdu_2016_06_14_14_55_06 spfile
可以看到spfile已经被拷出来了
查看控制文件内容
[grid@node1 ~]$ strings spfile
node2.__db_cache_size=268435456
node1.__db_cache_size=276824064
node2.__java_pool_size=4194304
node1.__java_pool_size=4194304
node2.__large_pool_size=4194304
node1.__large_pool_size=4194304
node2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
node1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
node2.__pga_aggregate_target=339738624
node1.__pga_aggregate_target=339738624
node2.__sga_target=503316480
node1.__sga_target=503316480
node2.__shared_io_po
ol_size=0
node1.__shared_io_pool_size=0
node2.__shared_pool_size=218103808
node1.__shared_pool_size=209715200
node2.__streams_pool_size=0
node1.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/node/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='11.2.0.4.0'
*.control_files='+DATADG01/node/controlfile/current.256.914424919'
*.db_block_size=8192
*.db_create_file_dest='+DATADG01'
*.db_domain=''
*.db_name='node'
*.diagnostic_dest='/u01/app/oracle'
node1.inst
ance_number=1
node2.instance_number=2
*.memory_target=842006528
*.open_cursors=300
*.processes=150
*.remote_listener='scanip:1521'
*.remote_login_passwordfile='exclusive'
node2.thread=2
node1.thread=1
node1.undo_tablespace='UNDOTBS1'
node2.undo_tablespace='UNDOTBS2'
--extrace controlfile
[grid@node1 ~]$ amdu -dis '/dev/raw/raw*' -nodir -norep -extract datadg01.256 -output control01.ctl
[grid@node1 ~]$ -dis '/dev/raw/raw*' -nodir -norep -extract datadg01.264 -output users.dbf
[grid@node1 ~]$ amdu -dis '/dev/raw/raw*' -nodir -norep -extract datadg01.263 -output undotbs2.dbf
[grid@node1 ~]$ amdu -dis '/dev/raw/raw*' -nodir -norep -extract datadg01.261 -output undotbs1.dbf
[grid@node1 ~]$ amdu -dis '/dev/raw/raw*' -nodir -norep -extract datadg01.260 -output sysaux.dbf
[grid@node1 ~]$ amdu -dis '/dev/raw/raw*' -nodir -norep -extract datadg01.259 -output system.dbf
[grid@node1 ~]$ ll -sh *.dbf
601M -rw-r--r-- 1 grid oinstall 601M Jun 14 15:21 sysaux.dbf
701M -rw-r--r-- 1 grid oinstall 701M Jun 14 15:22 system.dbf
201M -rw-r--r-- 1 grid oinstall 201M Jun 14 15:20 undotbs1.dbf
201M -rw-r--r-- 1 grid oinstall 201M Jun 14 15:20 undotbs2.dbf
5.1M -rw-r--r-- 1 grid oinstall 5.1M Jun 14 15:19 users.dbf
[grid@node1 ~]$ amdu -dis '/dev/raw/raw*' -nodir -norep -extract datadg01.257 -output redo01.log
[grid@node1 ~]$ amdu -dis '/dev/raw/raw*' -nodir -norep -extract datadg01.258 -output redo02.log
[grid@node1 ~]$ amdu -dis '/dev/raw/raw*' -nodir -norep -extract datadg01.265 -output redo03.log
[grid@node1 ~]$ amdu -dis '/dev/raw/raw*' -nodir -norep -extract datadg01.266 -output redo04.log
[grid@node1 ~]$ ll -sh *.log
51M -rw-r--r-- 1 grid oinstall 51M Jun 14 15:24 redo01.log
51M -rw-r--r-- 1 grid oinstall 51M Jun 14 15:25 redo02.log
51M -rw-r--r-- 1 grid oinstall 51M Jun 14 15:26 redo03.log
51M -rw-r--r-- 1 grid oinstall 51M Jun 14 15:26 redo04.log
验证一下有没有坏块
[grid@node1 ~]$ dbv file=system.dbf
DBVERIFY: Release 11.2.0.4.0 - Production on Tue Jun 14 15:27:24 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - Verification starting : FILE = /home/grid/system.dbf
DBVERIFY - Verification complete
Total Pages Examined : 89600
Total Pages Processed (Data) : 15658
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 4851
Total Pages Failing (Index): 0
Total Pages Processed (Other): 3065
Total Pages Processed (Seg) : 1
Total Pages Failing (Seg) : 0
Total Pages Empty : 66026
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 376278 (0.376278)
可以看到文件状态正常