欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle如何在ASM中定位文件的分布

程序员文章站 2022-04-28 11:19:06
...

我们将尝试找出文件的AU分布,然后根据AU分布定位磁盘所在的位置,设置有可能利用操作系统层面的工具拷贝ASM其中的数据出来。我将使用两个例子来说明如何查看au分布。 0. spfile 查看当前的spfile: sys@GT11G show parameter spfile; NAME TYPE VALUE -----

  我们将尝试找出文件的AU分布,然后根据AU分布定位磁盘所在的位置,设置有可能利用操作系统层面的工具拷贝ASM其中的数据出来。我将使用两个例子来说明如何查看au分布。

  0. spfile

  查看当前的spfile:

  sys@GT11G> show parameter spfile;

  NAME TYPE VALUE

  ------------------------------------ ----------- ------------------------------

  spfile string +DATA01/gt11g/spfilegt11g.ora

  查找对应的DISKGROUP信息:

  +ASM> select name,group_number,file_number from v$asm_alias where lower(name)='spfilegt11g.ora';

  NAME GROUP_NUMBER FILE_NUMBER

  -------------------- ------------ -----------

  spfileGT11G.ora 1 265

  +ASM> select name,group_number from v$asm_diskgroup;

  NAME GROUP_NUMBER

  -------- ------------

  DATA01 1

  FRA 2

  SYSDG 3

  通过视图查看对应的AU分布:

  +ASM> select group_kffxp,number_kffxp,pxn_kffxp,xnum_kffxp,disk_kffxp from x$kffxp where group_kffxp=1 and number_kffxp=265;

  GROUP_KFFXP NUMBER_KFFXP PXN_KFFXP XNUM_KFFXP DISK_KFFXP

  ----------- ------------ ---------- ---------- ----------

  1 265 0 0 1

  上述查询显示spfile文件在磁盘组1的0号磁盘上只占用了1个AU,那么我们可以直接通过kfed工具来查看下磁盘上的分配属性。

  首先我们要找出对应的磁盘信息,注意磁盘序号是从0开始的:

  +ASM> select group_number,disk_number,path from v$asm_disk where group_number=1 and disk_number=0;

  GROUP_NUMBER DISK_NUMBER PATH

  ------------ ----------- --------------------

  1 0 /dev/asm11g-f

  文件的FILE_NUMBER=256,我们应该从au2这里面查找,也即asm元数据之后的第1个文件,而blkn0是保留位置,因此我们从blkn1开始查找:

  [grid@gtser2 ~]$ kfed read /dev/asm11g-f 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: 4093010779 ; 0x00c: 0xf3f6635b

  kfbh.fcn.base: 443 ; 0x010: 0x000001bb

  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: 32984682 ; 0x050: HOUR=0xa DAYS=0x13 MNTH=0x3 YEAR=0x7dd

  kfffdb.crets.lo: 3985358848 ; 0x054: USEC=0x0 MSEC=0x2f0 SECS=0x18 MINS=0x3b

  kfffdb.modts.hi: 32984682 ; 0x058: HOUR=0xa DAYS=0x13 MNTH=0x3 YEAR=0x7dd

  kfffdb.modts.lo: 3985358848 ; 0x05c: USEC=0x0 MSEC=0x2f0 SECS=0x18 MINS=0x3b

  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

  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: 31 ; 0x4a8: 0x0000001f

  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: 52 ; 0x4af: 0x34

  kfffde[2].xptr.au: 4294967295 ; 0x4b0: 0xffffffff

  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[1].xptr.au: 31 ; 0x4a8: 0x0000001f

  kfffde[0].xptr.disk: 0 ; 0x4a4: 0x0000

  这说明从256文件开始相关的au分布信息是放在这里的,我们继续查看这个au的信息:

  +ASM> select group_number,disk_number,path from v$asm_disk where group_number=1 and disk_number=1;

  GROUP_NUMBER DISK_NUMBER PATH

  ------------ ----------- --------------------

  1 1 /dev/asm11g-g

  而265号文件是存放在blkn=265-255=10,也即第10块中(blkn=9):

  [grid@gtser2 ~]$ kfed read /dev/asm11g-g aun=31 blkn=9 | 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: 265 ; 0x004: blk=265

  kfbh.block.obj: 1 ; 0x008: file=1

  kfbh.check: 3335649844 ; 0x00c: 0xc6d1fa34

  kfbh.fcn.base: 3319 ; 0x010: 0x00000cf7

  kfbh.fcn.wrap: 0 ; 0x014: 0x00000000

  kfbh.spare1: 0 ; 0x018: 0x00000000

  kfbh.spare2: 0 ; 0x01c: 0x00000000

  kfffdb.node.incarn: 810479951 ; 0x000: A=1 NUMM=0x182778a7

  kfffdb.node.frlist.number: 4294967295 ; 0x004: 0xffffffff

  kfffdb.node.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0

  kfffdb.hibytes: 0 ; 0x00c: 0x00000000

  kfffdb.lobytes: 3584 ; 0x010: 0x00000e00

  kfffdb.xtntcnt: 1 ; 0x014: 0x00000001

  kfffdb.xtnteof: 1 ; 0x018: 0x00000001

  kfffdb.blkSize: 512 ; 0x01c: 0x00000200

  kfffdb.flags: 17 ; 0x020: O=1 S=0 S=0 D=0 C=1 I=0 R=0 A=0

  kfffdb.fileType: 13 ; 0x021: 0x0d

  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: 1 ; 0x03c: 0x0001

  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]: 318 ; 0x044: 0x0000013e

  kfffdb.alias[1]: 58 ; 0x048: 0x0000003a

  kfffdb.strpwdth: 1 ; 0x04c: 0x01

  kfffdb.strpsz: 20 ; 0x04d: 0x14

  kfffdb.usmsz: 0 ; 0x04e: 0x0000

  kfffdb.crets.hi: 32984685 ; 0x050: HOUR=0xd DAYS=0x13 MNTH=0x3 YEAR=0x7dd

  kfffdb.crets.lo: 1287023616 ; 0x054: USEC=0x0 MSEC=0x19b SECS=0xb MINS=0x13

  kfffdb.modts.hi: 32984747 ; 0x058: HOUR=0xb DAYS=0x15 MNTH=0x3 YEAR=0x7dd

  kfffdb.modts.lo: 0 ; 0x05c: USEC=0x0 MSEC=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: 936 ; 0x4a0: 0x000003a8

  kfffde[0].xptr.disk: 1 ; 0x4a4: 0x0001

  kfffde[0].xptr.flags: 0 ; 0x4a6: L=0 E=0 D=0 S=0

  kfffde[0].xptr.chk: 128 ; 0x4a7: 0x80

  kfffde[1].xptr.au: 4294967295 ; 0x4a8: 0xffffffff

  kfffde[1].xptr.disk: 65535 ; 0x4ac: 0xffff

  kfffde[1].xptr.flags: 0 ; 0x4ae: L=0 E=0 D=0 S=0

  kfffde[1].xptr.chk: 42 ; 0x4af: 0x2a

  我们可以看到只有:

  kfffde[0].xptr.au: 936 ; 0x4a0: 0x000003a8

  而下一个:

  kfffde[1].xptr.au: 4294967295 ; 0x4a8: 0xffffffff

  是还没分配数据的,这也印证了我们的配置,,external的dg,没有冗余,因此每个au只有primary extents,即1个au,接下来我们通过os的dd命令将该文件copy出来,我们可以直接将spfile dd到文本文件:

  +ASM> select group_kfdat,number_kfdat,aunum_kfdat from x$kfdat where fnum_kfdat=265;

  GROUP_KFDAT NUMBER_KFDAT AUNUM_KFDAT

  ----------- ------------ -----------

  1 1 936

  从上面信息我们得到该文件业绩spfile的在磁盘的物理位置:

  [grid@gtser2 ~]$ dd if=/dev/asm11g-g skip=936 of=/tmp/dbspfile bs=1024k count=1

  1+0 records in

  1+0 records out

  1048576 bytes (1.0 MB) copied, 0.00721405 seconds, 145 MB/s

  [grid@gtser2 ~]$ cat /tmp/dbspfile

  C"(%3tQ0CC"yKGT11G.__db_cache_size=301989888

  GT11G.__java_pool_size=4194304

  GT11G.__large_pool_size=4194304

  GT11G.__oracle_base='/u02/app/oracle'#ORACLE_BASE set from environment

  GT11G.__pga_aggregate_target=159383552

  GT11G.__sga_target=469762048

  GT11G.__shared_io_pool_size=0

  GT11G.__shared_pool_size=146800640

  GT11G.__streams_pool_size=0

  *.audit_file_dest='/u02/app/oracle/admin/GT11G/adump'

  *.audit_trail='db'

  *.compatible='11.2.0.0.0'

  *.control_files='+DATA01/gt11g/controlfile/current.256.8104718CC"y/79','+FRA/gt11g/controlfile/current.256.810471883'

  *.db_block_size=8192

  *.db_create_file_dest='+DATA01'

  *.db_domain=''

  *.db_name='GT11G'

  *.db_recovery_file_dest='+FRA'

  *.db_recovery_file_dest_size=5218762752

  *.diagnostic_dest='/u02/app/oracle'

  *.dispatchers='(PROTOCOL=TCP) (SERVICE=GT11GXDB)'

  *.log_archive_format='%t_%s_%r.dbf'

  *.nls_language='SIMPLIFIED CHINESE'

  *.nls_territory='CHINA'

  *.open_cursors=300

  *.pga_aggregate_target=156237824

  *.processes=150

  *.remote_login_passwordfile='ECC"YcXCLUSIVE'

  *.sga_target=469762048

  *.undo_tablespace='UNDOTBS1'

  CC"FeCC"EeCC"DeC[grid@gtser2 ~]$

  0. 控制文件

  sys@GT11G> show parameter control_files

  NAME TYPE VALUE

  ------------------------------------ ----------- ------------------------------

  control_files string +DATA01/gt11g/controlfile/curr

  ent.256.810471879, +FRA/gt11g/

  controlfile/current.256.810471

  883

  +ASM> select XNUM_KFFXP , PXN_KFFXP , LXN_KFFXP , DISK_KFFXP , AU_KFFXP,size_kffxp

  2 from X$KFFXP

  3 where GROUP_KFFXP=1 and NUMBER_KFFXP=256 and XNUM_KFFXP2147483648

  4 order by 1,2;

  XNUM_KFFXP PXN_KFFXP LXN_KFFXP DISK_KFFXP AU_KFFXP SIZE_KFFXP

  ---------- ---------- ---------- ---------- ---------- ----------

  0 0 0 1 32 1

  1 1 0 0 29 1

  2 2 0 1 33 1

  3 3 0 0 30 1

  4 4 0 1 34 1

  5 5 0 0 31 1

  6 6 0 1 35 1

  7 7 0 0 32 1

  8 8 0 1 36 1

  9 9 0 0 33 1

  10 10 0 1 37 1

  11 11 0 0 34 1

  12 12 0 1 38 1

  13 13 0 0 35 1

  14 14 0 1 39 1

  15 15 0 0 36 1

  16 rows selected.

  这个控制文件使用了16个au,我们看看实际的磁盘分布情况怎么样:

  [grid@gtser2 ~]$ kfed read /dev/asm11g-g aun=31 blkn=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: 179031737 ; 0x00c: 0x0aabceb9

  kfbh.fcn.base: 3301 ; 0x010: 0x00000ce5

  kfbh.fcn.wrap: 0 ; 0x014: 0x00000000

  kfbh.spare1: 0 ; 0x018: 0x00000000

  kfbh.spare2: 0 ; 0x01c: 0x00000000

  kfffdb.node.incarn: 810471879 ; 0x000: A=1 NUMM=0x182768e3

  kfffdb.node.frlist.number: 4294967295 ; 0x004: 0xffffffff

  kfffdb.node.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0

  kfffdb.hibytes: 0 ; 0x00c: 0x00000000

  kfffdb.lobytes: 9748480 ; 0x010: 0x0094c000

  kfffdb.xtntcnt: 16 ; 0x014: 0x00000010

  kfffdb.xtnteof: 16 ; 0x018: 0x00000010

  kfffdb.blkSize: 16384 ; 0x01c: 0x00004000

  kfffdb.flags: 19 ; 0x020: O=1 S=1 S=0 D=0 C=1 I=0 R=0 A=0

  kfffdb.fileType: 1 ; 0x021: 0x01

  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: 16 ; 0x03c: 0x0010

  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]: 106 ; 0x044: 0x0000006a

  kfffdb.alias[1]: 4294967295 ; 0x048: 0xffffffff

  kfffdb.strpwdth: 8 ; 0x04c: 0x08

  kfffdb.strpsz: 17 ; 0x04d: 0x11

  kfffdb.usmsz: 0 ; 0x04e: 0x0000

  kfffdb.crets.hi: 32984683 ; 0x050: HOUR=0xb DAYS=0x13 MNTH=0x3 YEAR=0x7dd

  kfffdb.crets.lo: 307757056 ; 0x054: USEC=0x0 MSEC=0x200 SECS=0x25 MINS=0x4

  kfffdb.modts.hi: 32984745 ; 0x058: HOUR=0x9 DAYS=0x15 MNTH=0x3 YEAR=0x7dd

  kfffdb.modts.lo: 0 ; 0x05c: USEC=0x0 MSEC=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: 32 ; 0x4a0: 0x00000020

  kfffde[0].xptr.disk: 1 ; 0x4a4: 0x0001

  kfffde[0].xptr.flags: 0 ; 0x4a6: L=0 E=0 D=0 S=0

  kfffde[0].xptr.chk: 11 ; 0x4a7: 0x0b

  kfffde[1].xptr.au: 29 ; 0x4a8: 0x0000001d

  kfffde[1].xptr.disk: 0 ; 0x4ac: 0x0000

  kfffde[1].xptr.flags: 0 ; 0x4ae: L=0 E=0 D=0 S=0

  kfffde[1].xptr.chk: 55 ; 0x4af: 0x37

  kfffde[2].xptr.au: 33 ; 0x4b0: 0x00000021

  kfffde[2].xptr.disk: 1 ; 0x4b4: 0x0001

  kfffde[2].xptr.flags: 0 ; 0x4b6: L=0 E=0 D=0 S=0

  kfffde[2].xptr.chk: 10 ; 0x4b7: 0x0a

  kfffde[3].xptr.au: 30 ; 0x4b8: 0x0000001e

  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: 52 ; 0x4bf: 0x34

  kfffde[4].xptr.au: 34 ; 0x4c0: 0x00000022

  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: 9 ; 0x4c7: 0x09

  kfffde[5].xptr.au: 31 ; 0x4c8: 0x0000001f

  kfffde[5].xptr.disk: 0 ; 0x4cc: 0x0000

  kfffde[5].xptr.flags: 0 ; 0x4ce: L=0 E=0 D=0 S=0

  kfffde[5].xptr.chk: 53 ; 0x4cf: 0x35

  kfffde[6].xptr.au: 35 ; 0x4d0: 0x00000023

  kfffde[6].xptr.disk: 1 ; 0x4d4: 0x0001

  kfffde[6].xptr.flags: 0 ; 0x4d6: L=0 E=0 D=0 S=0

  kfffde[6].xptr.chk: 8 ; 0x4d7: 0x08

  kfffde[7].xptr.au: 32 ; 0x4d8: 0x00000020

  kfffde[7].xptr.disk: 0 ; 0x4dc: 0x0000

  kfffde[7].xptr.flags: 0 ; 0x4de: L=0 E=0 D=0 S=0

  kfffde[7].xptr.chk: 10 ; 0x4df: 0x0a

  kfffde[8].xptr.au: 36 ; 0x4e0: 0x00000024

  kfffde[8].xptr.disk: 1 ; 0x4e4: 0x0001

  kfffde[8].xptr.flags: 0 ; 0x4e6: L=0 E=0 D=0 S=0

  kfffde[8].xptr.chk: 15 ; 0x4e7: 0x0f

  kfffde[9].xptr.au: 33 ; 0x4e8: 0x00000021

  kfffde[9].xptr.disk: 0 ; 0x4ec: 0x0000

  kfffde[9].xptr.flags: 0 ; 0x4ee: L=0 E=0 D=0 S=0

  kfffde[9].xptr.chk: 11 ; 0x4ef: 0x0b

  kfffde[10].xptr.au: 37 ; 0x4f0: 0x00000025

  kfffde[10].xptr.disk: 1 ; 0x4f4: 0x0001

  kfffde[10].xptr.flags: 0 ; 0x4f6: L=0 E=0 D=0 S=0

  kfffde[10].xptr.chk: 14 ; 0x4f7: 0x0e

  kfffde[11].xptr.au: 34 ; 0x4f8: 0x00000022

  kfffde[11].xptr.disk: 0 ; 0x4fc: 0x0000

  kfffde[11].xptr.flags: 0 ; 0x4fe: L=0 E=0 D=0 S=0

  kfffde[11].xptr.chk: 8 ; 0x4ff: 0x08

  kfffde[12].xptr.au: 38 ; 0x500: 0x00000026

  kfffde[12].xptr.disk: 1 ; 0x504: 0x0001

  kfffde[12].xptr.flags: 0 ; 0x506: L=0 E=0 D=0 S=0

  kfffde[12].xptr.chk: 13 ; 0x507: 0x0d

  kfffde[13].xptr.au: 35 ; 0x508: 0x00000023

  kfffde[13].xptr.disk: 0 ; 0x50c: 0x0000

  kfffde[13].xptr.flags: 0 ; 0x50e: L=0 E=0 D=0 S=0

  kfffde[13].xptr.chk: 9 ; 0x50f: 0x09

  kfffde[14].xptr.au: 39 ; 0x510: 0x00000027

  kfffde[14].xptr.disk: 1 ; 0x514: 0x0001

  kfffde[14].xptr.flags: 0 ; 0x516: L=0 E=0 D=0 S=0

  kfffde[14].xptr.chk: 12 ; 0x517: 0x0c

  kfffde[15].xptr.au: 36 ; 0x518: 0x00000024

  kfffde[15].xptr.disk: 0 ; 0x51c: 0x0000

  kfffde[15].xptr.flags: 0 ; 0x51e: L=0 E=0 D=0 S=0

  kfffde[15].xptr.chk: 14 ; 0x51f: 0x0e

  kfffde[16].xptr.au: 4294967295 ; 0x520: 0xffffffff

  kfffde[16].xptr.disk: 65535 ; 0x524: 0xffff

  kfffde[16].xptr.flags: 0 ; 0x526: L=0 E=0 D=0 S=0

  kfffde[16].xptr.chk: 42 ; 0x527: 0x2a

  kfffde[17].xptr.au: 4294967295 ; 0x528: 0xffffffff

  kfffde[17].xptr.disk: 65535 ; 0x52c: 0xffff

  kfffde[17].xptr.flags: 0 ; 0x52e: L=0 E=0 D=0 S=0

  kfffde[17].xptr.chk: 42 ; 0x52f: 0x2a

  kfffde[18].xptr.au: 4294967295 ; 0x530: 0xffffffff

  这个结果符合我们的预期,占用了16个au也即16Mb:

  sys@GT11G> select name,block_size/1024 from v$controlfile ;

  NAME BLOCK_SIZE/1024

  -------------------------------------------------- ---------------

  +DATA01/gt11g/controlfile/current.256.810471879 16

  +FRA/gt11g/controlfile/current.256.810471883 16

  -EOF-