偷学自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
... ...