问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问使用oracle asm自动存储管理,今天突然一个asm diskgroup无法mount了

发布网友 发布时间:2022-05-25 16:26

我来回答

1个回答

热心网友 时间:2023-11-18 07:12

一般当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: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000

KFBH说到底是一个C语言头文件中定义的Structure,其定义大致如下:

endian_kfbh /* endianness of writer */
hard_kfbh /* H.A.R.D. magic # and blocksize */
type_kfbh /* metadata block type */
datfmt_kfbh /* metadata block data format */
block_kfbh /* block location of this block */
check_kfbh /* check value to verify consistency */
fcn_kfbh /* change number of last change */
spare1_kfbh /* zero pad out to 32 bytes */
spare2_kfbh /* zero pad out to 32 bytes */

以上的每一个区域实际均可能是 “验证发现问题的区域”,例如:

ORA-15196:invalid ASM block header [kfc.c:7997] [endian_kfbh] [1] [93] [211 != 0]
ORA-15196INVALID ASM BLOCK HEADER [KFC.C 8064] [CHECK_KFBH] [2147483827] [2]

l 存放在ASM Block中的ASM对象号object_number

这里每一个ASMmetadata block都对应于特定的ASM结构元文件。kfbh.block.obj即块头的对象号信息,实际也是ASM的文件号。例如下面的例子 即是1号文件KFBTYP_FILEDIR File Directory

[oracle@mlab2~]$ kfed read /oracleasm/asm-disk01aun=2 blkn=1 aus=4194304|less
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: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000

ASMFile number: ASM Metadata: kfbh.type 的对应关系

ASM File number

ASM Metadata

kfbh.type

1

File Directory

KFBTYP_FILEDIR

2

Disk Directory

KFBTYP_DISKDIR

3

Active Change Directory (ACD)

KFBTYP_CHNGDIR

4

Continous Operations Directory (COD)

KFBTYP_COD_DATA

5

Template Directory

KFBTYP_TMPLTDIR

6

Alias Directory

KFBTYP_ALIASDIR

9

Attributes Directory

KFBTYP_ATTRDIR

12

Staleness Directory

KFBTYP_STALEDIR

对于其他的metadata结构如PST、KFBTYP_DISKHEAD等其kfbh.block.obj总是2147483648,即16进制 0x 80000000,如:

[oracle@mlab2~]$ kfed read /oracleasm/asm-disk01aun=0 blkn=0 aus=4194304|less
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: 852050979 ; 0x00c:0x32c94423
kfbh.fcn.base: 106569 ; 0x010: 0x0001a049
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000

l 存放在ASM block中的块号 block number

一个ASMFile往往由多个Extent组成,一个Extent可以是一个Allocation Unit,也可以使多个allocation Units(VariableExtent Size)。 一个Extent又由多个ASM metadata block(一般为4096 bytes大小)组成。默认1MB AU下,一个extent对应256个ASM metadata block。

kfbh.block.blk代表某个文件中的块号。例如kfbh.block.blk=93,那么一般存放在某个文件的第一个extent里。而这个extent可以由Disk group上任意ASM disk上的任意AU组成。

l 2nd指定的区域中实际存放的值

即第二个变量中现在实际存放的数值

l 2nd指定的区域中应当存放的值

即第二个变量中理论上应当存放的数值

我们来看一个例子:

ORA-15196:invalid ASM block header [kfc.c:7997] [endian_kfbh] [1] [93] [211 != 0]

可以解释为1号文件的93块 中的endian_kfbh区域在kfc.c的7997代码做检测时发现,其实际存放的值为211,而实际上endian_kfbh 一般只有2个值 0x01 或者 0x00,0x01代表Little Endian,0x00代表Big Endian。 211这个实际存放值是非法的,说明这个重要的1号文件的93号块出现了损坏。

ORA-15196相关的一些BUG Note如下:

Bug 14545129 - ORA-15196_ INVALID ASM BLOCK HEADER [KXDAM

Bug 14740185 - ASM REPORTED CORRUPTED AT BLOCKS _ ORA-15196_ INVALID ASM BLOCK HEADER [KFC

Bug 5554692 - Error ORA-15196 reporting ASM block header invalid ora-15196 after ORA-.pdf

ORA-15196 and ORA-600 [kfgpn lclenq] Resizing Datafile or Dropping User (Doc ID 759379.1)

ORA-15196 WITH ASM DISKS LARGER THAN 2TB (Doc ID 736891.1)

Querying V$ASM_FILE Gives ORA-15196 After ASM Was Upgraded From 10gR2 To 11gR2 with an AU size 1M (Doc ID 1145365.1)

Bug 11801536 ORA-15196 INVALID ASM BLOCK HEADER [KFC.C 8064] [CHECK_KFBH] [2147483827]

Bug 13605059 - ORA-15196_ INVALID ASM BLOCK HEADER [KFC

但主要引起ORA-15196错误的原因并不是ORACLE自身的BUG,而是ORACLE之外的一些因素:

1. ASM使用的磁盘被从OS级别做了某种格式化,或者头部被覆盖,例如AIX下chdev设置了pv头
2. ASM使用的磁盘被分配为文件系统,这个一般是误操作导致的,例如SA系统管理员看到一块ASM磁盘被有被操作系统使用,就认为这是浪费,而在上面mkfs
3. 由于IO链路或者存储故障,如丢失写等
4. 由于第三方应用引起

l 建议收集的数据

对于该ORA-15196诗檀建议收集如下的数据:

Oracle告警日志alert.log和相关的trace文件
发生问题的ASMDisk的前300MB数据的DD

首先通过alert.log的内容确定损坏发生的ASM Disk号:
WARNING:cache failed to read fn=1 blk=80 from disk(s): 0
ORA-15196:invalid ASM block header [kfc.c:7997] [endian_kfbh] [1] [93] [211 != 0]

这里disk(s):0,指DISK_NUMBER=0的ASM DISK,之后通过dd命令复制300MB数据:

$ddif=<device path> of=/tmp/disk.dd bs= 1048576 count=300

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
问一卡通网上转账还款问题 招行一卡通可以通过网银转账到招行存折吗 美菱洗衣机e3是什么故障 美菱洗衣机显示圆圈锁是什么意思? 鲁迅的老家在哪里 鲁迅老家是哪里呀 什么是小额贴息贷款 我是05年申请姐妹纸移民美国的,请问几年排到 电脑哪个键输网址符号的请问电脑输入网址时怎么输入4747符号 电脑怎么设置使用http11怎么把自己的电脑设置成Http代理服务器_百度知 ... kfbuiej 是什么病毒 10月10日 艺术人文频道 20:00 播放的节目 观后感 400分急救 自己把pdf转word,在线等 查找少先队员的资料,写一篇读后感 TROJAN病毒 观全国十佳少先队员事迹有感 少先队员的观后感题目写什么? 赛季结束,钻石夺宝幸运值会清零吗 中高档饭店取名主做川菜,湘菜,农家菜 用和密码能在电脑上登陆微信吗? 王者荣耀赛季结束后,钻石抽奖的幸运值会不会清零 王者荣耀钻石夺宝次数会不会清零? 请问手机版我的世界怎么去虚无世界 我的世界 虚无世界那里下载 手机玩的 微信怎么用密码登录? 目前手机上能玩我的世界之虚无世界吗? 怎样直接使用和密码登录? 在哪些情况下警察会抓到在逃人员 什么情况人失踪了,警察会帮忙去找人 一般的诈骗警察会定位找人吗 ipad的QQ上下载了一excel文件,怎么把他传到电脑里 ?我在电脑上找不到他了 现在有个微信积分兑换音响的项目,85一单,在哪里可以做? 春节都有哪些传统? vue项目,手机电脑同一wifi防火墙也关闭了,npm run dev 运行pc端访问本地ip没问题,mobile端访问空白? 电扳手的理电池可以修复吗? 一个已婚男人暧昧期,不联系不拉黑不删除我,是怎么回事? play4 pro可以不用40w充电器吗? 已婚男人就是微信不回但也不删除 跟已婚男人在一起三年了,现在谁也不理谁了,可他为什么不删除我的微信. 已婚男人不回已婚女人微信也没屏蔽你什么意思 让分手的已婚男人把我微信删除了,他不删也不理是什么意思。是想要气死我吗? 为什么已婚男人说要跟我分手,微信也不删,我手机号也不拉黑 一个已婚男把他微信删了 他为什么还不删我 已婚男人现在不联系了 也没说分手 既然都不说话了 为什么不把女的微信删除了 西安北方庆华机电有限公司在纺织城的职工新区征名,要求以庆华开头,好听有创意的名字,并说明内涵,急求 能把一个电脑的内存装到别的电脑上吗 联想拯救者y7000p用了几年之后可以把硬盘和内存拔下来换到新电脑上吗? 把内存条换到另一台电脑,东西也会跟到另一台电脑吗 怎么把电脑的内存换到另一个电脑上 电脑的内存条能换到其他的计算机中