ASM Physically addressed metadata-disk header

 

在asm世界里,几乎所有计数都是从0开始,比如磁盘号、AU号、asm块号、file extent号等等。asm磁盘的磁盘头属于Physically addressed metadata,总是位于第一个AU的第一个block上(AU#=0,BLK#=0)。磁盘头记录了该磁盘以及磁盘组的一些基本信息,如:磁盘号、磁盘组名、失败组名、磁盘冗余级别、磁盘头状态等等,除此之外磁盘头还记录了au大小、扇区大小、最小ASM兼容版本和最小数据库兼容版本等磁盘属性,以及一些指向其他重要ASM元数据的指针信息,可以说磁盘头对于asm磁盘来说非常的重要。

下面我们详细的解析asm磁盘头的信息,asm磁盘头从结构上由kfbh(asm元数据块头)和kfdhdb(asm磁盘头)组成,通过之前对asm元数据块头的介绍,很容易对磁盘头的kfbh部分进行解读:

  • kfdhdb部分内容较多,所以下面挑选出一些比较重要的信息进行解释:
  • kfdhdb.driver.provstr: ASMLIB磁盘为ORCLDISK+磁盘名,非ASMLIB磁盘为ORCLDISK
  • kfdhdb.compat:磁盘组属性asm最小兼容版本,例如0x0b200000转换为10进制则为11.2,注意如果是create diskgroup发起则默认为参数”_asm_compatibility”
  • kfdhdb.dsknum:ASM磁盘编号
  • kfdhdb.grptyp:磁盘级冗余级别,其枚举值如下: 
  • kfdhdb.hdrsts:ASM磁盘头状态,V$ASM_DISK.HEADER_STATUS的信息来自此处,其枚举值如下:
  • kfdhdb.dskname:ASM磁盘名
  • kfdhdb.grpname:ASM磁盘组名
  • kfdhdb.fgname:ASM失败组名
  • kfdhdb.crestmp.hi:ASM磁盘组创建时间(年、月、日、时)
  • kfdhdb.crestmp.lo:ASM磁盘组创建时间(分、秒、毫秒、微秒)
  • kfdhdb.mntstmp.hi:ASM磁盘组mount时间(年、月、日、时)
  • kfdhdb.mntstmp.lo:ASM磁盘组mount时间(分、秒、毫秒、微秒)
  • kfdhdb.secsize:磁盘的扇区大小,单位byte
  • kfdhdb.blksize:ASM元数据块的大小,单位byte
  • kfdhdb.ausize:Alloocation unit的大小,单位byte
  • kfdhdb.mfact:Stride size,单位AU
  • kfdhdb.dsksize: 磁盘大小,单位AU
  • kfdhdb.fstlocn: 值为块号,指向本磁盘第一个Free space table block
  • kfdhdb.altlocn: 值为块号,指向本磁盘第一个Alocation table block
  • kfdhdb.f1b1locn: 值为AU号,指向File Directory的第一个块,注意External冗余的磁盘组,只有磁盘编号为0的磁盘头有f1b1locn值
  • kfdhdb.dbcompat: 磁盘属性最小的数据库兼容版本. 例如0x0a100000转换为10进制则为10.1,默认为参数“_rdbms_compatibility”
  • kfdhdb.vfstart:voting disk file的起始AU号,如果为0则说明voting disk file不在该磁盘
  • kfdhdb.vfend:voting disk file的结束AU号
  • kfdhdb.spfile:ASM spfile参数文件的AU号,本特性限于11.2或更高版本
  • kfdhdb.spfflg:ASM spfile参数文件标识,如果这个值是1,ASM spfile参数文件则位于本磁盘的kfdhdb.spfile,如果这个值为0,则说明ASM spfile不在该磁盘

从10.2.0.5版本开始,oracle将asm磁盘头备份到了AU号为1(第二个AU)的倒数第二个块上。对于不同的AU大小,磁盘头备份所在块号如下表格所示:

Allocation Unit Size Block Number on AU 1
1048576 254
4194304 1022
8388608 2046
16777216 4094

 

从12.1版本开始,oracle为了更好的保护物理元数据,推出了Physical metadata replication特性,如果磁盘组属性compatible.asm高于或等于12.1,并且新增的磁盘组属性phys_meta_replicated为true,则oracle会自动将0号au备份到该磁盘第11号au上。进一步保证了物理元数据的安全。

此条目发表在Oracle, Oracle Recover分类目录,贴了, 标签。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注