一般当ASM元数据块(metadata block)被检验存在严重问题时才会触发本文所介绍的ORA-15196错误。
该ORA-15196报错的一般格式是:
ORA-15196:invalid ASM block header [1st] [2nd] [3rd] [4th] [5th != 6th]
相关的变量的含义为:
1st, 触发该意外报错的Oracle内核函数的名字以及其在代码中的行数
2nd, 验证发现问题的区域名字
3rd, 存放在该块中的ASM对象号 http://www.parnassusdata.com/
4th,存放在该块中的ASM的块号
5th, 2nd指定的区域中实际存放的值
6th, 2nd指定的区域中应当存放的值 诗檀软件专业修复Oracle数据库
例如:
ORA-15196:invalid ASM block header [kfc.c:7997] [endian_kfbh] [1] [93] [211 != 0]
其中kfc.c:7997,说明触发本次ORA-15196错误的代码是kfc.c 内核源代码的7997行的代码
endian_kfbh:验证发现问题的区域名字,这个endian_kfbh是用来描述endian属性的
存放在该块中的ASM对象号:1
存放在该块中的ASM的块号:93
2nd指定的区域中实际存放的值:211
2nd指定的区域中应当存放的值:0
进一步解析上面的参数
l 验证发现问题的区域名字
ASM metadata元数据由多种多样的结构组成,例如FILE directory文件目录,Disk Directory磁盘目录,Active ChangeDirectory(ACDC),这些信息都存放在ASM的第1号文件到第255文件之间。每一个文件又由ASM Extent组成,Extent又由大小为4096 bytes的ASM block组成(仅仅对于Metadata File是这样的,对于Oracle Datafile数据文件则仍是由DB_BLOCK_SIZE大小的数据块组成)。这里每一个ASM BLOCK均有一个必备的块头KFBH,如下面的例子:
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: 325804796 ; 0x00c:0x136b62fc
kfbh.fcn.base: 0 ; 0x010: 0x00000000
kfbh.fcn.wrap: