ASM文件介绍,本文从ASM文件为角度展开ASM空间分配的知识:
1、 ASM disk Header:
每一个磁盘的第一个block存放该磁盘的头文件,大小为4k(4096 bytes),可以用kfed工具查看此块的内容:
[grid@ractst01 mdback]$ kfed read ORCL:DISK1 aun=0blkn=0|more
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: blk=0
kfbh.block.obj: 2147483648 ; 0x008: disk=0
kfbh.check: 2005150499 ; 0x00c:0x77842b23
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: ORCLDISKDISK1 ; 0x000: length=13
kfdhdb.driver.reserved[0]: 1263749444 ; 0x008: 0x4b534944
kfdhdb.driver.reserved[1]: 49 ; 0x00c: 0x00000031
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: 186646528 ; 0x020:0x0b200000
kfdhdb.dsknum: 0 ; 0x024: 0x0000
kfdhdb.grptyp: 1 ; 0x026:KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027:KFDHDR_MEMBER
kfdhdb.dskname: DISK1 ; 0x028: length=5
kfdhdb.grpname: DATA ; 0x048: length=4
kfdhdb.fgname: DISK1 ; 0x068: length=5
kfdhdb.capname: ; 0x088: length=0
kfdhdb.crestmp.hi: 33025388 ; 0x0a8: HOUR=0xcDAYS=0xb MNTH=0xb YEAR=0x7df
kfdhdb.crestmp.lo: 1014005760 ; 0x0ac: USEC=0x0MSEC=0x20 SECS=0x7 MINS=0xf
kfdhdb.mntstmp.hi: 33025862 ; 0x0b0: HOUR=0x6DAYS=0x1a MNTH=0xb YEAR=0x7df
kfdhdb.mntstmp.lo: 3898109952 ; 0x0b4: USEC=0x0MSEC=0x21c SECS=0x5 MINS=0x3a
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
kfdhdb.blksize: 4096 ; 0x0ba: 0x1000
kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000
kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80
kfdhdb.dsksize: 8189 ; 0x0c4: 0x00001ffd
kfdhdb.pmcnt: 2 ; 0x0c8: 0x00000002
kfdhdb.fstlocn: 1 ; 0x0cc: 0x00000001
kfdhdb.altlocn: 2 ; 0x0d0: 0x00000002
kfdhdb.f1b1locn: 2 ; 0x0d4: 0x00000002
kfdhdb.redomirrors[0]: 0 ; 0x0d8: 0x0000
kfdhdb.redomirrors[1]: 0 ; 0x0da: 0x0000
kfdhdb.redomirrors[2]: 0 ; 0x0dc: 0x0000
kfdhdb.redomirrors[3]: 0 ; 0x0de: 0x0000
kfdhdb.dbcompat: 168820736 ; 0x0e0: 0x0a100000
kfdhdb.grpstmp.hi: 33025388 ; 0x0e4: HOUR=0xcDAYS=0xb MNTH=0xb YEAR=0x7df
kfdhdb.grpstmp.lo: 1013777408 ; 0x0e8: USEC=0x0MSEC=0x341 SECS=0x6 MINS=0xf
kfdhdb.vfstart: 128 ; 0x0ec: 0x00000080
kfdhdb.vfend: 160 ; 0x0f0: 0x000000a0
kfdhdb.spfile: 0 ; 0x0f4: 0x00000000
kfdhdb.spfflg: 0 ; 0x0f8: 0x00000000
kfdhdb.ub4spare[0]: 0 ; 0x0fc: 0x00000000
kfdhdb.ub4spare[1]: 0 ; 0x100: 0x00000000
kfdhdb.ub4spare[2]: 0 ; 0x104: 0x00000000
kfdhdb.ub4spare[3]: 0 ; 0x108: 0x00000000
kfdhdb.ub4spare[4]: 0 ; 0x10c: 0x00000000
kfdhdb.ub4spare[5]: 0 ; 0x110: 0x00000000
kfdhdb.ub4spare[6]: 0 ; 0x114: 0x00000000
kfdhdb.ub4spare[7]: 0 ; 0x118: 0x00000000
kfdhdb.ub4spare[8]: 0 ; 0x11c: 0x00000000
kfdhdb.ub4spare[9]: 0 ; 0x120: 0x00000000
kfdhdb.ub4spare[10]: 0 ; 0x124: 0x00000000
kfdhdb.ub4spare[11]: 0 ; 0x128: 0x00000000
省略后面内容。。。
即使disk header损坏,如果生产正在运行状态,不会影响生产的运行,如果ASM实例重启或其他原因down掉,启动过程会报错,不能加载磁盘,需要修复disk header。
Disk Header自备份:
One backup copyof ASM disk header is in the second last block of allocation unit 1,假定AU大小1M,(1048576 /4096) * 2 – 1 = 511,即是该磁盘的511个块,也即是第1个AU的第254号块:
[grid@ractst01 mdback]$ kfed read ORCL:DISK1 aun=1blkn=254|more
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 254 ; 0x004: blk=254
kfbh.block.obj: 2147483648 ; 0x008: disk=0
kfbh.check: 2005150685 ; 0x00c:0x77842bdd
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: ORCLDISKDISK1 ; 0x000: length=13
kfdhdb.driver.reserved[0]: 1263749444 ; 0x008: 0x4b534944
kfdhdb.driver.reserved[1]: 49 ; 0x00c: 0x00000031
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: 186646528 ; 0x020: 0x0b200000
kfdhdb.dsknum: 0 ; 0x024: 0x0000
kfdhdb.grptyp: 1 ; 0x026:KFDGTP_EXTERNAL
kfdhdb.hdrsts: 3 ; 0x027:KFDHDR_MEMBER
kfdhdb.dskname: DISK1 ; 0x028: length=5
kfdhdb.grpname: DATA ; 0x048: length=4
kfdhdb.fgname: DISK1 ; 0x068: length=5
kfdhdb.capname: ; 0x088: length=0
kfdhdb.crestmp.hi: 33025388 ; 0x0a8: HOUR=0xcDAYS=0xb MNTH=0xb YEAR=0x7df
kfdhdb.crestmp.lo: 1014005760 ; 0x0ac: USEC=0x0MSEC=0x20 SECS=0x7 MINS=0xf
kfdhdb.mntstmp.hi: 33025862 ; 0x0b0: HOUR=0x6DAYS=0x1a MNTH=0xb YEAR=0x7df
kfdhdb.mntstmp.lo: 3898109952 ; 0x0b4: USEC=0x0MSEC=0x21c SECS=0x5 MINS=0x3a
kfdhdb.secsize: 512 ; 0x0b8: 0x0200
……………………………….
所以,一旦0号块头文件损坏,可以直接用如下命令修复:
[grid@ractst01 ~]#kfed repair/dev/sdb1
2、 ASM diskgroup metadata
“diskgroup metadata: files with NUMBER_KFFIL <256 ASMmetadata and ASMlog files. These files have high redundancy (3 copies) andblock size =4KB.”
ASM的每一个文件都有一个唯一的索引号,1至255号文件是元文件,256开始的是其他文件。元文件中包含了ASM的配置、数据文件信息还有目录、别名等信息,1号文件包含所有文件的磁盘占用信息;每个文件信息占用一个块(4096字节,元数据块大小为4K)的空间。
1号文件总是开始在0号磁盘2号AU,这是ASM中定位文件的起点, 1号文件在最少情况下,至少有两个AU。0号盘2号AU,是1号文件的第一个AU,共256各元数据块,0号块是该1号文件的头块(KFBTYP_LISTHEAD),1~255号块分别存放1号文件自身及直到255号文件的AU分布信息,也就是说0号盘2号AU,保存了全部diskgroup元文件的空间分布信息。
1号文件的第二个AU,从第一个块开始,保存256号文件。第二个块对应257号文件……
每次从ASM中读数据时,Oracle都要先读到1号文件,从中找出要读的目标文件在磁盘上的分布位置,然后再去读取相应的文件的数据。
1号文件分布信息:
[grid@ractst01mdback]$ kfed read ORCL:DISK1 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: 2549506451 ; 0x00c:0x97f66193
kfbh.fcn.base: 791 ; 0x010: 0x00000317
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=0D=0 C=0 I=0 R=0 A=0
kfffdb.fileType: 15 ; 0x021: 0x0f
kfffdb.dXrs: 17 ; 0x022: SCHE=0x1NUMB=0x1
kfffdb.iXrs: 17 ; 0x023: SCHE=0x1NUMB=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: 33025388 ; 0x050: HOUR=0xcDAYS=0xb MNTH=0xb YEAR=0x7df
kfffdb.crets.lo: 1014590464 ; 0x054: USEC=0x0MSEC=0x25b SECS=0x7 MINS=0xf
kfffdb.modts.hi: 33025388 ; 0x058: HOUR=0xcDAYS=0xb MNTH=0xb YEAR=0x7df
kfffdb.modts.lo: 1014590464 ; 0x05c: USEC=0x0MSEC=0x25b SECS=0x7 MINS=0xf
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.spare[1]: 0 ; 0x074: 0x00000000
kfffdb.spare[2]: 0 ; 0x078: 0x00000000
kfffdb.spare[3]: 0 ; 0x07c: 0x00000000
kfffdb.spare[4]: 0 ; 0x080: 0x00000000
kfffdb.spare[5]: 0 ; 0x084: 0x00000000
kfffdb.spare[6]: 0 ; 0x088: 0x00000000
kfffdb.spare[7]: 0 ; 0x08c: 0x00000000
kfffdb.spare[8]: 0 ; 0x090: 0x00000000
kfffdb.spare[9]: 0 ; 0x094: 0x00000000
kfffdb.spare[10]: 0 ; 0x098: 0x00000000
kfffdb.spare[11]: 0 ; 0x09c: 0x00000000
kfffdb.usm: ; 0x0a0: length=0
kfffde[0].xptr.au: 2 ; 0x4a0: 0x00000002 第一个AU
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: 120 ; 0x4a8: 0x00000078 第二个AU
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: 80 ; 0x4af: 0x50
kfffde[2].xptr.au: 4294967295 ; 0x4b0: 0xffffffff 注:该AU暂未分配
kfffde[2].xptr.disk: 65535 ; 0x4b4: 0xffff
kfffde[2].xptr.flags: 0 ; 0x4b6: L=0 E=0 D=0 S=0
kfffde[2].xptr.chk: 42 ; 0x4b7: 0x2a
kfffde[3].xptr.au: 4294967295 ; 0x4b8: 0xffffffff
kfffde[3].xptr.disk: 65535 ; 0x4bc: 0xffff
kfffde[3].xptr.flags: 0 ; 0x4be: L=0 E=0 D=0 S=0
kfffde[3].xptr.chk: 42 ; 0x4bf: 0x2a
kfffde[4].xptr.au: 4294967295 ; 0x4c0: 0xffffffff
kfffde[4].xptr.disk: 65535 ; 0x4c4: 0xffff
kfffde[4].xptr.flags: 0 ; 0x4c6: L=0 E=0 D=0 S=0
kfffde[4].xptr.chk: 42 ; 0x4c7: 0x2a
kfffde[5].xptr.au: 4294967295 ; 0x4c8: 0xffffffff
kfffde[5].xptr.disk: 65535 ; 0x4cc: 0xffff
kfffde[5].xptr.flags: 0 ; 0x4ce: L=0 E=0 D=0 S=0
可以看到:0号盘第二个AU是1号文件的第一个AU,2号盘(ORCL:DISK3)第120号AU是1号文件的第二个AU(存放256号文件开始的空间分配信息)
3、 普通文件
查询第256号文件为例:
SQL> select name,GROUP_NUMBER,FILE_NUMBER,ALIAS_DIRECTORY fromv$asm_alias where FILE_NUMBER=256;
NAME GROUP_NUMBERFILE_NUMBER A
-------------------------------------------------- ----------------------- -
spfileractst.ora 2 256 N
查看256号文件空间分配信息:
[grid@ractst01mdback]$ kfed read ORCL:DISK3 aun=120blkn=0|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: 256 ; 0x004: blk=256
kfbh.block.obj: 1 ; 0x008: file=1
kfbh.check: 1877502103 ; 0x00c:0x6fe86897
kfbh.fcn.base: 2993 ; 0x010: 0x00000bb1
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
kfffdb.node.incarn: 895496043 ; 0x000: A=1NUMM=0x1ab017b5
kfffdb.node.frlist.number: 4294967295 ; 0x004: 0xffffffff
kfffdb.node.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0
kfffdb.hibytes: 0 ; 0x00c: 0x00000000
kfffdb.lobytes: 775954432 ; 0x010: 0x2e402000
kfffdb.xtntcnt: 741 ; 0x014: 0x000002e5
kfffdb.xtnteof: 741 ; 0x018: 0x000002e5
kfffdb.blkSize: 8192 ; 0x01c: 0x00002000
kfffdb.flags: 17 ; 0x020: O=1 S=0 S=0D=0 C=1 I=0 R=0 A=0
kfffdb.fileType: 12 ; 0x021: 0x0c
kfffdb.dXrs: 17 ; 0x022: SCHE=0x1NUMB=0x1
kfffdb.iXrs: 17 ; 0x023: SCHE=0x1NUMB=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: 61 ; 0x03c: 0x003d
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]: 265 ; 0x044: 0x00000109
kfffdb.alias[1]: 4294967295 ; 0x048: 0xffffffff
kfffdb.strpwdth: 1 ; 0x04c: 0x01
kfffdb.strpsz: 20 ; 0x04d: 0x14
kfffdb.usmsz: 0 ; 0x04e: 0x0000
kfffdb.crets.hi: 33025388 ; 0x050: HOUR=0xcDAYS=0xb MNTH=0xb YEAR=0x7df
kfffdb.crets.lo: 3625899008 ; 0x054: USEC=0x0 MSEC=0x3b5SECS=0x1 MINS=0x36
kfffdb.modts.hi: 33025862 ; 0x058: HOUR=0x6DAYS=0x1a MNTH=0xb YEAR=0x7df
kfffdb.modts.lo: 0 ; 0x05c: USEC=0x0MSEC=0x0 SECS=0x0 MINS=0x0
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.spare[1]: 0 ; 0x074: 0x00000000
kfffdb.spare[2]: 0 ; 0x078: 0x00000000
kfffdb.spare[3]: 0 ; 0x07c: 0x00000000
kfffdb.spare[4]: 0 ; 0x080: 0x00000000
kfffdb.spare[5]: 0 ; 0x084: 0x00000000
kfffdb.spare[6]: 0 ; 0x088: 0x00000000
kfffdb.spare[7]: 0 ; 0x08c: 0x00000000
kfffdb.spare[8]: 0 ; 0x090: 0x00000000
kfffdb.spare[9]: 0 ; 0x094: 0x00000000
kfffdb.spare[10]: 0 ; 0x098: 0x00000000
kfffdb.spare[11]: 0 ; 0x09c: 0x00000000
kfffdb.usm: ; 0x0a0: length=0
kfffde[0].xptr.au: 123 ; 0x4a0: 0x0000007b
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: 81 ; 0x4a7: 0x51
kfffde[1].xptr.au: 125 ; 0x4a8: 0x0000007d
kfffde[1].xptr.disk: 1 ; 0x4ac: 0x0001
kfffde[1].xptr.flags: 0 ; 0x4ae: L=0 E=0 D=0 S=0
kfffde[1].xptr.chk: 86 ; 0x4af: 0x56
kfffde[2].xptr.au: 121 ; 0x4b0: 0x00000079
kfffde[2].xptr.disk: 2 ; 0x4b4: 0x0002
kfffde[2].xptr.flags: 0 ; 0x4b6: L=0 E=0 D=0 S=0
kfffde[2].xptr.chk: 81 ; 0x4b7: 0x51
kfffde[3].xptr.au: 124 ; 0x4b8: 0x0000007c
kfffde[3].xptr.disk: 0 ; 0x4bc: 0x0000
kfffde[3].xptr.flags: 0 ; 0x4be: L=0 E=0 D=0 S=0
kfffde[3].xptr.chk: 86 ; 0x4bf: 0x56
kfffde[4].xptr.au: 126 ; 0x4c0: 0x0000007e
kfffde[4].xptr.disk: 1 ; 0x4c4: 0x0001
kfffde[4].xptr.flags: 0 ; 0x4c6: L=0 E=0 D=0 S=0
kfffde[4].xptr.chk: 85 ; 0x4c7: 0x55
kfffde[5].xptr.au: 122 ; 0x4c8: 0x0000007a
kfffde[5].xptr.disk: 2 ; 0x4cc: 0x0002
kfffde[5].xptr.flags: 0 ; 0x4ce: L=0 E=0 D=0 S=0
kfffde[5].xptr.chk: 82 ; 0x4cf: 0x52
kfffde[6].xptr.au: 125 ; 0x4d0: 0x0000007d
kfffde[6].xptr.disk: 0 ; 0x4d4: 0x0000
kfffde[6].xptr.flags: 0 ; 0x4d6: L=0 E=0 D=0 S=0
kfffde[6].xptr.chk: 87 ; 0x4d7: 0x57
kfffde[7].xptr.au: 127 ; 0x4d8: 0x0000007f
kfffde[7].xptr.disk: 1 ; 0x4dc: 0x0001
kfffde[7].xptr.flags: 0 ; 0x4de: L=0 E=0 D=0 S=0
kfffde[7].xptr.chk: 84 ; 0x4df: 0x54
kfffde[8].xptr.au: 123 ; 0x4e0: 0x0000007b
………………………………………..
附录:
视图:X$KFFXP
GROUP_KFFXP :磁盘组编号
NUMBER_KFFXP :文件编号
PXN_KFFXP :物理区号
XNUM_KFFXP :逻辑区号
LXN_KFFXP :0=primary, 1=firstmirror, 2=second mirror
DISK_KFFXP :磁盘编号
AU_KFFXP :AU号
通常,一个AU就是一个区。逻辑区和物理区的区别是,如果冗余模式是Nomarl,有两个FailGroup,那么文件的每一个AU,可以称为一个逻辑区。它在两个FailGroup中分别各自对应一个AU,每个AU称为物理区。
SQL> select DISK_KFFXP,AU_KFFXP,SIZE_KFFXP from x$KFFXP where NUMBER_KFFXP=256 andGROUP_KFFXP=1;
DISK_KFFXP AU_KFFXPSIZE_KFFXP
---------- ---------- ----------
0 123 1
1 125 1
2 121 1
0 124 1
1 126 1
2 122 1
0 125 1
1 127 1
2 123 1
0 126 1
1 128 1
DISK_KFFXP AU_KFFXPSIZE_KFFXP
---------- ---------- ----------
2 124 1
0 127 1
--More--(2%)