首页 > 代码库 > ORACLE ASM - alias directory

ORACLE ASM - alias directory


oracle 元数据的第2个au的第6个数据块上保存了alias directory的au指针,可以通过x$kffxp查询,

SELECT 
       number_kffxp file#,
       disk_kffxp disk#,
       AU_KFFXP AU_num,
       SIZE_KFFXP as "nummber of au"
  FROM x$kffxp
 WHERE group_kffxp = 1
   AND disk_kffxp <> 65534
 10     AND number_kffxp = 6
 11  /

     FILE#	DISK#	  AU_NUM nummber of au
---------- ---------- ---------- -------------
	 6	    1	      49	     1
	 6	    0	      49	     1
	 6	    2	      49	     1

 

-- 文件编号6对应磁盘1,0,2 au编号为49

   这里磁盘0: /dev/asm-diskb

           1: /dev/asm-diskc

           2: /dev/asm-diskd

  

下面通过分析元数据来验证,  由于file directory au = 2

[root@localhost ~]# kfed read /dev/asm-diskb | grep f1
kfdhdb.f1b1locn:                      2 ; 0x0d4: 0x00000002

alias directory number为6因此我们应该通过kfed查询 au=2 block=6的数据块

[root@localhost ~]# kfed read /dev/asm-diskb aun=2 blkn=6 | grep kfffde | head -20
kfffde[0].xptr.au:                   49 ; 0x4a0: 0x00000031   -- au number都为49
kfffde[0].xptr.disk:                  1 ; 0x4a4: 0x0001     --disk 1
kfffde[0].xptr.flags:                 0 ; 0x4a6: L=0 E=0 D=0 S=0
kfffde[0].xptr.chk:                  26 ; 0x4a7: 0x1a       
kfffde[1].xptr.au:                   49 ; 0x4a8: 0x00000031   
kfffde[1].xptr.disk:                  0 ; 0x4ac: 0x0000     -- disk 0
kfffde[1].xptr.flags:                 0 ; 0x4ae: L=0 E=0 D=0 S=0
kfffde[1].xptr.chk:                  27 ; 0x4af: 0x1b
kfffde[2].xptr.au:                   49 ; 0x4b0: 0x00000031
kfffde[2].xptr.disk:                  2 ; 0x4b4: 0x0002     -- disk 2
kfffde[2].xptr.flags:                 0 ; 0x4b6: L=0 E=0 D=0 S=0
kfffde[2].xptr.chk:                  25 ; 0x4b7: 0x19
可以看到通过kfed 和 前面sql查询完全吻合


那么通过下面命令可以定位到alias directory

[root@localhost ~]# kfed read /dev/asm-diskb aun=49 blkn=0
kfbh.endian:                          1 ; 0x000: 0x01
kfbh.hard:                          130 ; 0x001: 0x82
kfbh.type:                           11 ; 0x002: KFBTYP_ALIASDIR    -- file type  为 alias directory
kfbh.datfmt:                          1 ; 0x003: 0x01
kfbh.block.blk:                       0 ; 0x004: T=0 NUMB=0x0
kfbh.block.obj:                       6 ; 0x008: TYPE=0x0 NUMB=0x6
kfbh.check:                  2830667707 ; 0x00c: 0xa8b88fbb
kfbh.fcn.base:                     2814 ; 0x010: 0x00000afe
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:                 0 ; 0x01c: 0x00000000
kffdnd.fstblk.incarn:                 1 ; 0x020: A=1 NUMM=0x0
kfade[0].entry.incarn:                3 ; 0x024: A=1 NUMM=0x1      
kfade[0].entry.hash:         4004320810 ; 0x028: 0xeead162a
kfade[0].entry.refer.number:          1 ; 0x02c: 0x00000001     --指向下一个block编号
kfade[0].entry.refer.incarn:          3 ; 0x030: A=1 NUMM=0x1   --entry部分内容,表示分支号,hash值和指向下一层block的指针等信息
kfade[0].name:                      ASM ; 0x034: length=3		-- 元数据名称
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:          185602149 ; 0x074: 0x0b101065
kfade[1].entry.refer.number:          3 ; 0x078: 0x00000003
kfade[1].entry.refer.incarn:          1 ; 0x07c: A=1 NUMM=0x0
kfade[1].name:                     ORCL ; 0x080: length=4
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:                0 ; 0x0bc: A=0 NUMM=0x0
kfade[2].entry.hash:                  0 ; 0x0c0: 0x00000000
kfade[2].entry.refer.number:          0 ; 0x0c4: 0x00000000
kfade[2].entry.refer.incarn:          0 ; 0x0c8: A=0 NUMM=0x0
.....
kfade[52].flags:                      0 ; 0xfdc: U=0 S=0 S=0 U=0 F=0
kfade[52].ub1spare:                   0 ; 0xfdd: 0x00
kfade[52].ub2spare:                   0 ; 0xfde: 0x0000


这里记录了ASM文件信息,和ORCL文件信息,分别指向了1,3 block , 那么第3个block应该就是orcl实例相关的文件信息,如下

[root@localhost ~]# kfed read /dev/asm-diskb aun=49 blkn=3
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: T=0 NUMB=0x3
kfbh.block.obj:                       6 ; 0x008: TYPE=0x0 NUMB=0x6
kfbh.check:                  2672927140 ; 0x00c: 0x9f51a1a4
kfbh.fcn.base:                     5677 ; 0x010: 0x0000162d
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:                 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:          710518681 ; 0x028: 0x2a59a799
kfade[0].entry.refer.number:          4 ; 0x02c: 0x00000004        -- 数据文件block编号
kfade[0].entry.refer.incarn:          1 ; 0x030: A=1 NUMM=0x0
kfade[0].name:                 DATAFILE ; 0x034: length=8            
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:                3 ; 0x070: A=1 NUMM=0x1
kfade[1].entry.hash:         4053320104 ; 0x074: 0xf198c1a8
kfade[1].entry.refer.number:          5 ; 0x078: 0x00000005      -- 控制文件block编号
kfade[1].entry.refer.incarn:          3 ; 0x07c: A=1 NUMM=0x1
kfade[1].name:              CONTROLFILE ; 0x080: length=11
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:         2803485489 ; 0x0c0: 0xa719cb31
kfade[2].entry.refer.number:          6 ; 0x0c4: 0x00000006    -- 日志文件block 编号
kfade[2].entry.refer.incarn:          1 ; 0x0c8: A=1 NUMM=0x0
kfade[2].name:                ONLINELOG ; 0x0cc: length=9            
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:          7 ; 0x110: 0x00000007
kfade[3].entry.refer.incarn:          1 ; 0x114: A=1 NUMM=0x0
kfade[3].name:                 TEMPFILE ; 0x118: length=8      -- 临时数据文件block编号
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:                3 ; 0x154: A=1 NUMM=0x1
kfade[4].entry.hash:         3261836913 ; 0x158: 0xc26bae71
kfade[4].entry.refer.number:          8 ; 0x15c: 0x00000008
kfade[4].entry.refer.incarn:          3 ; 0x160: A=1 NUMM=0x1
kfade[4].name:            PARAMETERFILE ; 0x164: length=13   -- 参数文件block编号
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:                3 ; 0x1a0: A=1 NUMM=0x1
kfade[5].entry.hash:         2014481262 ; 0x1a4: 0x78128b6e
kfade[5].entry.refer.number: 4294967295 ; 0x1a8: 0xffffffff
kfade[5].entry.refer.incarn:          0 ; 0x1ac: A=0 NUMM=0x0
kfade[5].name:           spfileorcl.ora ; 0x1b0: length=14
kfade[5].fnum:                      265 ; 0x1e0: 0x00000109
kfade[5].finc:                857256271 ; 0x1e4: 0x3318b14f
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
kfade[6].fnum:                        0 ; 0x22c: 0x00000000
kfade[6].finc:                        0 ; 0x230: 0x00000000
kfade[6].flags:                       0 ; 0x234: U=0 S=0 S=0 U=0 F=0
kfade[6].ub1spare:                    0 ; 0x235: 0x00
kfade[6].ub2spare:                    0 ; 0x236: 0x0000
......
kfade[52].ub1spare:                   0 ; 0xfdd: 0x00
kfade[52].ub2spare:                   0 ; 0xfde: 0x0000


根据上面信息找到数据文件信息如下

[root@localhost ~]# kfed read /dev/asm-diskb aun=49 blkn=4
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: T=0 NUMB=0x4
kfbh.block.obj:                       6 ; 0x008: TYPE=0x0 NUMB=0x6
kfbh.check:                  1563690326 ; 0x00c: 0x5d340556
kfbh.fcn.base:                     5938 ; 0x010: 0x00001732
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:                 3 ; 0x014: 0x00000003
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:          945453920 ; 0x028: 0x385a7b60
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:                      256 ; 0x064: 0x00000100
kfade[0].finc:                855531633 ; 0x068: 0x32fe6071
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:         3582191305 ; 0x074: 0xd583e6c9
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:                      257 ; 0x0b0: 0x00000101
kfade[1].finc:                855531635 ; 0x0b4: 0x32fe6073
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:         1418232765 ; 0x0c0: 0x548883bd
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:                      258 ; 0x0fc: 0x00000102
kfade[2].finc:                855531635 ; 0x100: 0x32fe6073
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:         3450686357 ; 0x10c: 0xcdad4b95
kfade[3].entry.refer.number: 4294967295 ; 0x110: 0xffffffff
kfade[3].entry.refer.incarn:          0 ; 0x114: A=0 NUMM=0x0
kfade[3].name:                    USERS ; 0x118: length=5                  
kfade[3].fnum:                      259 ; 0x148: 0x00000103
kfade[3].finc:                855531635 ; 0x14c: 0x32fe6073
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:         3395405755 ; 0x158: 0xca61c7bb
kfade[4].entry.refer.number: 4294967295 ; 0x15c: 0xffffffff
kfade[4].entry.refer.incarn:          0 ; 0x160: A=0 NUMM=0x0
kfade[4].name:                     TEST ; 0x164: length=4    
kfade[4].fnum:                      266 ; 0x194: 0x0000010a
kfade[4].finc:                857133305 ; 0x198: 0x3316d0f9
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
kfade[5].entry.incarn:                1 ; 0x1a0: A=1 NUMM=0x0
kfade[5].entry.hash:            8253282 ; 0x1a4: 0x007def62
kfade[5].entry.refer.number: 4294967295 ; 0x1a8: 0xffffffff
kfade[5].entry.refer.incarn:          0 ; 0x1ac: A=0 NUMM=0x0
kfade[5].name:                   SYSTEM ; 0x1b0: length=6
kfade[5].fnum:                      267 ; 0x1e0: 0x0000010b
kfade[5].finc:                857255903 ; 0x1e4: 0x3318afdf
kfade[5].flags:                      18 ; 0x1e8: U=0 S=1 S=0 U=0 F=1
kfade[5].ub1spare:                    0 ; 0x1e9: 0x00
kfade[5].ub2spare:                    0 ; 0x1ea: 0x0000
kfade[6].entry.incarn:                1 ; 0x1ec: A=1 NUMM=0x0
kfade[6].entry.hash:          380931100 ; 0x1f0: 0x16b48c1c
kfade[6].entry.refer.number: 4294967295 ; 0x1f4: 0xffffffff
kfade[6].entry.refer.incarn:          0 ; 0x1f8: A=0 NUMM=0x0
kfade[6].name:                   SYSAUX ; 0x1fc: length=6
kfade[6].fnum:                      268 ; 0x22c: 0x0000010c
kfade[6].finc:                857255903 ; 0x230: 0x3318afdf
kfade[6].flags:                      18 ; 0x234: U=0 S=1 S=0 U=0 F=1
kfade[6].ub1spare:                    0 ; 0x235: 0x00
kfade[6].ub2spare:                    0 ; 0x236: 0x0000
kfade[7].entry.incarn:                1 ; 0x238: A=1 NUMM=0x0
kfade[7].entry.hash:         2903512848 ; 0x23c: 0xad101710
kfade[7].entry.refer.number: 4294967295 ; 0x240: 0xffffffff
kfade[7].entry.refer.incarn:          0 ; 0x244: A=0 NUMM=0x0
kfade[7].name:                 UNDOTBS1 ; 0x248: length=8
kfade[7].fnum:                      269 ; 0x278: 0x0000010d
kfade[7].finc:                857255903 ; 0x27c: 0x3318afdf
kfade[7].flags:                      18 ; 0x280: U=0 S=1 S=0 U=0 F=1
kfade[7].ub1spare:                    0 ; 0x281: 0x00
kfade[7].ub2spare:                    0 ; 0x282: 0x0000
kfade[8].entry.incarn:                1 ; 0x284: A=1 NUMM=0x0
kfade[8].entry.hash:         1636478062 ; 0x288: 0x618aac6e
kfade[8].entry.refer.number: 4294967295 ; 0x28c: 0xffffffff
kfade[8].entry.refer.incarn:          0 ; 0x290: A=0 NUMM=0x0
kfade[8].name:                    USERS ; 0x294: length=5
kfade[8].fnum:                      270 ; 0x2c4: 0x0000010e
kfade[8].finc:                857255903 ; 0x2c8: 0x3318afdf
kfade[8].flags:                      18 ; 0x2cc: U=0 S=1 S=0 U=0 F=1
kfade[8].ub1spare:                    0 ; 0x2cd: 0x00
kfade[8].ub2spare:                    0 ; 0x2ce: 0x0000
kfade[9].entry.incarn:                1 ; 0x2d0: A=1 NUMM=0x0
kfade[9].entry.hash:          704364649 ; 0x2d4: 0x29fbc069
kfade[9].entry.refer.number: 4294967295 ; 0x2d8: 0xffffffff
kfade[9].entry.refer.incarn:          0 ; 0x2dc: A=0 NUMM=0x0
kfade[9].name:                    DITER ; 0x2e0: length=5
kfade[9].fnum:                      276 ; 0x310: 0x00000114
kfade[9].finc:                857458321 ; 0x314: 0x331bc691
kfade[9].flags:                      18 ; 0x318: U=0 S=1 S=0 U=0 F=1
kfade[9].ub1spare:                    0 ; 0x319: 0x00
kfade[9].ub2spare:                    0 ; 0x31a: 0x0000
kfade[10].entry.incarn:               0 ; 0x31c: A=0 NUMM=0x0
kfade[10].entry.hash:                 0 ; 0x320: 0x00000000
kfade[10].entry.refer.number:         0 ; 0x324: 0x00000000
kfade[10].entry.refer.incarn:         0 ; 0x328: A=0 NUMM=0x0
kfade[10].name:                         ; 0x32c: length=0
kfade[10].fnum:                       0 ; 0x35c: 0x00000000
kfade[10].finc:                       0 ; 0x360: 0x00000000
kfade[10].flags:                      0 ; 0x364: U=0 S=0 S=0 U=0 F=0
kfade[10].ub1spare:                   0 ; 0x365: 0x00
kfade[10].ub2spare:                   0 ; 0x366: 0x0000
...
kfade[52].flags:                      0 ; 0xfdc: U=0 S=0 S=0 U=0 F=0
kfade[52].ub1spare:                   0 ; 0xfdd: 0x00
kfade[52].ub2spare:                   0 ; 0xfde: 0x0000


下面是system alias信息,在添加数据文件不指定文件名,ASM 会自动分配即kfade[5].name.+kfade[5].fnum.+kfade[5].finc.组成

kfade[5].name:                   SYSTEM ; 0x1b0: length=6
kfade[5].fnum:                      267 ; 0x1e0: 0x0000010b
kfade[5].finc:                857255903 ; 0x1e4: 0x3318afdf

那么这里system表空间的file name 应该为 system.267.857255903,同理可以通过查看ASM 与数据对应的alias directory找出控制文件,日志文件等相关信息

下面是查询v$datafile的结果

SQL> select  name from v$datafile;

NAME
---------------------------------------------
+DATA/orcl/datafile/system.267.857255903
+DATA/orcl/datafile/sysaux.268.857255903
+DATA/orcl/datafile/undotbs1.269.857255903
+DATA/orcl/datafile/users.270.857255903
+DATA/orcl/datafile/diter.276.857458321

通过alias directory找到了数据文件信息,那么就可以根据这些信息找到file directory au 分布

也可以通过x$kffxp查询相关数据文件au 分布信息

 

SELECT NAME         "FILE NAME",
       NUMBER_KFFXP "FILE NUMBER",
       XNUM_KFFXP   "EXTENT NUMBER",
       DISK_KFFXP   "DISK NUMBER",
       AU_KFFXP     "AU NUMBER",
       SIZE_KFFXP   "NUMBER of AUs"
  FROM x$kffxp, v$asm_alias
 WHERE GROUP_KFFXP = GROUP_NUMBER
   AND NUMBER_KFFXP = FILE_NUMBER
   AND system_created = ‘Y‘
   AND lxn_kffxp = 0
   AND NAME = ‘DITER.276.857458321‘
 ORDER BY NAME;
/

FILE NAME				 FILE NUMBER EXTENT NUMBER DISK NUMBER	AU NUMBER NUMBER of AUs
---------------------------------------- ----------- ------------- ----------- ---------- -------------
DITER.276.857458321				 276		 0	     1	     2233	      1
DITER.276.857458321				 276		 1	     0	     2227	      1
DITER.276.857458321				 276		 2	     2	     2226	      1
DITER.276.857458321				 276		 3	     1	     2235	      1
DITER.276.857458321				 276		 4	     0	     2229	      1
DITER.276.857458321				 276		 5	     2	     2229	      1

-- 前面通过kefed读取的信息:

kfade[9].name:                    DITER ; 0x2e0: length=5
kfade[9].fnum:                      276 ; 0x310: 0x00000114
kfade[9].finc:                857458321 ; 0x314: 0x331bc691



从asm元数据得到了这些信息,就可以通过amdu工具或者dd命令直接将数据文件从asm磁盘组抽取出来,后面会详细介绍。


本文出自 “专注于Oracle性能调优” 博客,谢绝转载!

ORACLE ASM - alias directory