[grid@jyrac1 ~]$ kfed read /dev/raw/raw8 aun=30 blkn=255
kfbh.endian:? ? ? ? ? ? ? ? ? ? ? ? ? 1 ; 0x000: 0x01
kfbh.hard:? ? ? ? ? ? ? ? ? ? ? ? ? 130 ; 0x001: 0x82
kfbh.type:? ? ? ? ? ? ? ? ? ? ? ? ? 27 ; 0x002: KFBTYP_ASMSPFALS
kfbh.datfmt:? ? ? ? ? ? ? ? ? ? ? ? ? 1 ; 0x003: 0x01
kfbh.block.blk:? ? ? ? ? ? ? ? ? ? 255 ; 0x004: blk=255
kfbh.block.obj:? ? ? ? ? ? ? ? ? ? 253 ; 0x008: file=253
kfbh.check:? ? ? ? ? ? ? ? ? 1364026699 ; 0x00c: 0x514d654b
kfbh.fcn.base:? ? ? ? ? ? ? ? ? ? ? ? 0 ; 0x010: 0x00000000
kfbh.fcn.wrap:? ? ? ? ? ? ? ? ? ? ? ? 0 ; 0x014: 0x00000000
kfbh.spare1:? ? ? ? ? ? ? ? ? ? ? ? ? 0 ; 0x018: 0x00000000
kfbh.spare2:? ? ? ? ? ? ? ? ? ? ? ? ? 0 ; 0x01c: 0x00000000
kfspbals.incarn:? ? ? ? ? ? ? 928747387 ; 0x000: 0x375b8f7b
kfspbals.blksz:? ? ? ? ? ? ? ? ? ? 512 ; 0x004: 0x00000200
kfspbals.size:? ? ? ? ? ? ? ? ? ? ? ? 3 ; 0x008: 0x0003
kfspbals.path.len:? ? ? ? ? ? ? ? ? 44 ; 0x00a: 0x002c
kfspbals.path.buf:? ? ? ? ? ? ? ? ? ? ? ; 0x00c: length=0
这个元数据块不大,大多数的条目都是块头信息(字段kfbh.*)。实际上ASM spfile别名数据(字段kfspbals.*)只有几个条目。spfile文件的incarnation为928747387是文件名(REGISTRY.253.928747387)的一部分,ASM spfile的块大小512 bytes并且文件大小为3个块。path信息为空,意味着没有真实的ASM spfile别名。
下面将创建ASM spfile别名,先使用现有的spfile来创建pfile,再使用pfile来创建spfile别名:
[grid@jyrac1 ~]$sqlplus / as sysasm
SQL> create pfile='/tmp/pfile+ASM.ora' from spfile;
File created.
SQL> shutdown abort;
ASM instance shutdown
SQL> startup pfile='/tmp/pfile+ASM.ora';
ASM instance started
Total System Global Area 1135747072 bytes
Fixed Size? ? ? ? ? ? ? ? ? 2297344 bytes
Variable Size? ? ? ? ? ? 1108283904 bytes
ASM Cache? ? ? ? ? ? ? ? ? 25165824 bytes
ASM diskgroups mounted
SQL> create spfile='+CRSDG/jyrac-cluster/asmparameterfile/spfileasm.ora' from pfile='/tmp/pfile+ASM.ora';
File created.
SQL> exit
再次使用asmcmd查看ASM spfile将会发现存在两个条目
[grid@jyrac1 trace]$ asmcmd find --type ASMPARAMETERFILE +CRSDG "*"
+CRSDG/jyrac-cluster/asmparameterfile/REGISTRY.253.928747387
+CRSDG/jyrac-cluster/asmparameterfile/spfileasm.ora
现在可以看到ASM spfile本身(REGISTRY.253.928747387)与它的别名或链接文件(spfileasm.ora)。查看spfileasm.ora可以看到它确实是注册文件(REGISTRY.253.928747387)的别名
[grid@jyrac1 ~]$ asmcmd ls -l +CRSDG/jyrac-cluster/asmparameterfile/
Type? ? ? ? ? ? ? Redund? Striped? Time? ? ? ? ? ? Sys? Name
ASMPARAMETERFILE? UNPROT? COARSE? JAN 12 16:00:00? Y? ? REGISTRY.253.928745345
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? N? ? spfileasm.ora => +CRSDG/jyrac-cluster/asmparameterfile/REGISTRY.253.928745345
下面再次查看磁盘/dev/raw/raw8上的30号AU的最一个块255:
[grid@jyrac1 ~]$ kfed read /dev/raw/raw8 aun=30 blkn=255
kfbh.endian:? ? ? ? ? ? ? ? ? ? ? ? ? 1 ; 0x000: 0x01
kfbh.hard:? ? ? ? ? ? ? ? ? ? ? ? ? 130 ; 0x001: 0x82
kfbh.type:? ? ? ? ? ? ? ? ? ? ? ? ? 27 ; 0x002: KFBTYP_ASMSPFALS
kfbh.datfmt:? ? ? ? ? ? ? ? ? ? ? ? ? 1 ; 0x003: 0x01
kfbh.block.blk:? ? ? ? ? ? ? ? ? ? 255 ; 0x004: blk=255
kfbh.block.obj:? ? ? ? ? ? ? ? ? ? 253 ; 0x008: file=253
kfbh.check:? ? ? ? ? ? ? ? ? 1364026699 ; 0x00c: 0x514d654b
kfbh.fcn.base:? ? ? ? ? ? ? ? ? ? ? ? 0 ; 0x010: 0x00000000
kfbh.fcn.wrap:? ? ? ? ? ? ? ? ? ? ? ? 0 ; 0x014: 0x00000000
kfbh.spare1:? ? ? ? ? ? ? ? ? ? ? ? ? 0 ; 0x018: 0x00000000
kfbh.spare2:? ? ? ? ? ? ? ? ? ? ? ? ? 0 ; 0x01c: 0x00000000
kfspbals.incarn:? ? ? ? ? ? ? 928745345 ; 0x000: 0x375b8f7b
kfspbals.blksz:? ? ? ? ? ? ? ? ? ? 512 ; 0x004: 0x00000200
kfspbals.size:? ? ? ? ? ? ? ? ? ? ? ? 3 ; 0x008: 0x0003
kfspbals.path.len:? ? ? ? ? ? ? ? ? 44 ; 0x00a: 0x002c
kfspbals.path.buf:jyrac-cluster/asmparameterfile/spfileasm.ora ; 0x00c: length=44
现在可以看到别名文件名出现在ASM spfile别名块中。并且出现了新的incarnation号来表示新的ASM spfile文件的创建时间。
小结:
从ASM 11.2开始,ASM spfile可以被存储在ASM磁盘组中。为了支持这个功能,ASMCMD增加了相关命令来进行管理,并且在ASM磁盘头中增加了新的AS