oracle数据库ORA-15196: invalid ASM block header [kfc.c:26076] [hard_kfbh]问题

这是某个网友的数据库,11g ASM环境. 其中ASM元数据出现损坏,导致DiskGroup无法mount。不过比较万幸的存储有镜像。即使是这样,据说存储工程师恢复也花了1天多,对于我们的业务系统来讲,这是不可接受的。
我这里将该数据库case的信息贴出来,供大家参考!(备注:我们提供完善的数据库各种解决方案,详情请看:云和恩墨)

WARNING: cache read  a corrupt block: group=3(DATAVG) dsk=27 blk=1 disk=27 (DATAVG_0018) incarn=4042368416 au=0 blk=1 count=1
Errors in file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_2711.trc:
ORA-15196: invalid ASM block header [kfc.c:26076] [hard_kfbh] [2147483675] [1] [0 != 130]
NOTE: a corrupted block from group DATAVG was dumped to /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_2711.trc
WARNING: cache read (retry) a corrupt block: group=3(DATAVG) dsk=27 blk=1 disk=27 (DATAVG_0018) incarn=4042368416 au=0 blk=1 count=1
Errors in file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_2711.trc:
ORA-15196: invalid ASM block header [kfc.c:26076] [hard_kfbh] [2147483675] [1] [0 != 130]
ORA-15196: invalid ASM block header [kfc.c:26076] [hard_kfbh] [2147483675] [1] [0 != 130]
ERROR: cache failed to read group=3(DATAVG) dsk=27 blk=1 from disk(s): 27(DATAVG_0018)
ORA-15196: invalid ASM block header [kfc.c:26076] [hard_kfbh] [2147483675] [1] [0 != 130]
ORA-15196: invalid ASM block header [kfc.c:26076] [hard_kfbh] [2147483675] [1] [0 != 130]
NOTE: cache initiating offline of disk 27 group DATAVG
NOTE: process _user2711_+asm1 (2711) initiating offline of disk 27.4042368416 (DATAVG_0018) with mask 0x7e in group 3
WARNING: Disk 27 (DATAVG_0018) in group 3 in mode 0x7f is now being taken offline on ASM inst 1
NOTE: initiating PST update: grp = 3, dsk = 27/0xf0f1a5a0, mask = 0x6a, op = clear
Wed Jan 28 10:41:11 2015
GMON updating disk modes for group 3 at 13 for pid 36, osid 2711
ERROR: Disk 27 cannot be offlined, since diskgroup has external redundancy.
ERROR: too many offline disks in PST (grp 3)
Wed Jan 28 10:41:11 2015
NOTE: cache dismounting (not clean) group 3/0xB80155A0 (DATAVG)
NOTE: messaging CKPT to quiesce pins Unix process pid: 3013, image: oracle@rsdb01 (B000)
Wed Jan 28 10:41:11 2015
NOTE: halting all I/Os to diskgroup 3 (DATAVG)
Wed Jan 28 10:41:11 2015
NOTE: LGWR doing non-clean dismount of group 3 (DATAVG)
NOTE: LGWR sync ABA=114.216 last written ABA 114.216
WARNING: Offline of disk 27 (DATAVG_0018) in group 3 and mode 0x7f failed on ASM inst 1
System State dumped to trace file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_2711.trc
Wed Jan 28 10:41:11 2015
kjbdomdet send to inst 2
detach from dom 3, sending detach message to inst 2
Wed Jan 28 10:41:11 2015
List of instances:
 1 2
Dirty detach reconfiguration started (new ddet inc 1, cluster inc 20)
 Global Resource Directory partially frozen for dirty detach
* dirty detach - domain 3 invalid = TRUE
1152 GCS resources traversed, 0 cancelled
Dirty Detach Reconfiguration complete
Wed Jan 28 10:41:11 2015
WARNING: dirty detached from domain 3
NOTE: cache dismounted group 3/0xB80155A0 (DATAVG)
SQL> alter diskgroup DATAVG dismount force /* ASM SERVER */
Wed Jan 28 10:41:12 2015
ERROR: ORA-15130 in COD recovery for diskgroup 3/0xb80155a0 (DATAVG)
ERROR: ORA-15130 thrown in RBAL for group number 3
Errors in file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_rbal_2389.trc:
ORA-15130: diskgroup "DATAVG" is being dismounted
ERROR: ORA-15130 in COD recovery for diskgroup 3/0xb80155a0 (DATAVG)
ERROR: ORA-15130 thrown in RBAL for group number 3
Errors in file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_rbal_2389.trc:
ORA-15130: diskgroup "DATAVG" is being dismounted
ERROR: ORA-15130 in COD recovery for diskgroup 3/0xb80155a0 (DATAVG)
ERROR: ORA-15130 thrown in RBAL for group number 3
Errors in file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_rbal_2389.trc:
ORA-15130: diskgroup "DATAVG" is being dismounted
NOTE: AMDU dump of disk group DATAVG created at /u01/app/grid/diag/asm/+asm/+ASM1/trace
NOTE: cache deleting context for group DATAVG 3/0xb80155a0
GMON dismounting group 3 at 14 for pid 37, osid 3013
NOTE: Disk  in mode 0x8 marked for de-assignment
.......
NOTE: Disk  in mode 0x8 marked for de-assignment
NOTE: Disk  in mode 0x8 marked for de-assignment
SUCCESS: diskgroup DATAVG was dismounted
SUCCESS: alter diskgroup DATAVG dismount force /* ASM SERVER */
ERROR: PST-initiated MANDATORY DISMOUNT of group DATAVG
Wed Jan 28 10:41:20 2015
NOTE: diskgroup resource ora.DATAVG.dg is offline
Wed Jan 28 10:41:26 2015
NOTE: ASM client rsdb1:rsdb disconnected unexpectedly.
NOTE: check client alert log.
NOTE: Trace records dumped in trace file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_2667.trc

从上述错误我们可以判断,ASM DISKGROUP无法mount。报错的原因是如下:

WARNING: cache read  a corrupt block: group=3(DATAVG) dsk=27 blk=1 disk=27 (DATAVG_0018) incarn=4042368416 au=0 blk=1 count=1
Errors in file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_ora_2711.trc:
ORA-15196: invalid ASM block header [kfc.c:26076] [hard_kfbh] [2147483675] [1] [0 != 130]

从这几行信息来看,DATAVG磁盘组的第27号盘的第0个AU的第1号block损坏了。 实际上,这就是disk header损坏了。

下面针对ORA-15196错误进行简单解释:

ORA-15196: invalid ASM block header [kfc.c:26076] [hard_kfbh] [2147483675] [1] [0 != 130]
[kfc.c:26076]: 表示运行kfc.c代码的第26076行出现问题
[hard_kfbh]:    表示检查失败的类型
[2147483675]:  表示file number
[1]:           表示block number
[0 != 130]:     表示该处的值,当前是0,检测发现实际上应该是130才对.

实际上,对于这样的错误,一旦出现,ASM元数据损坏的不仅仅是磁盘头。经过我们判断,至少前面4M的ASM元数据都已经
损坏。对于这样的情况,可能使用AMDU是无法进行数据文件的抽取的。
一般来讲,对于是external的DiskGroup,前面42M的ASM元数据如果不是彻底损坏,那么DiskGroup中的数据都是比较容易弄出来的。
如果损坏非常严重,那么可能只能使用数据库抽取工具进行扫盘。目前DUL或ODU都可以完美的解决这样的情况。
如果你遇到类似的数据库故障,那么请第一时间联系我们!

时间: 2024-09-26 09:30:36

oracle数据库ORA-15196: invalid ASM block header [kfc.c:26076] [hard_kfbh]问题的相关文章

Oracle数据库ORA 54013错误的解决办法_oracle

ORA-54013: 不允许对虚拟列执行 INSERT 操作 这是Oracle 11 的新特性 -- 虚拟列. 在以前的Oracle 版本,当我们需要使用表达式或者一些计算公式时,我们会创建数据库视图,如果我们需要在这个视图上使用索引,我们会创建基于函数的索引.现在Oracle 11允许我们直接在表上使用虚拟列来存储表达式.虚拟列的值是不存储在磁盘的,它们是在查询时根据定义的表达式临时计算的.我们不能往虚拟列中插入数据,我们也不能隐式的添加数据到虚拟列,我们只能使用物理列来插入数据.然后可以查询

oracle中如何手工修复ASM DISK HEADER 异常

今天有网友对asm中的磁盘做了fdisk操作,导致asm disk异常,通过手工修复ASM DISK HEADER 解决该问题,这里通过实验重现,提醒大家操作asm中的硬盘分区需要慎重,平时对ASM DISK HEADER 做好备份 初始化信息 SQL> select * from v$version; BANNER ---------------------------------------------------------------------- Oracle Database 11g

oracle中通过kfed说明asm disk header定义

kfed读取数据磁盘头主要参数解释说明 % kfed read /dev/raw/raw1      kfbh.endian:                          1 ; 0x000: 0x01  kfbh.hard:                          130 ; 0x001: 0x82  kfbh.type:                            1 ; 0x002: KFBTYP_DISKHEAD  kfbh.datfmt:           

oracle数据库oracleasm createdisk重新创建asm disk后数据0丢失恢复案例

有客户反馈他们重启系统之后,发现asmlib创建的asmdisk丢失了,然后又使用oracleasm deletedisk和createdisk重新创建的asm disk,最后发现asm diskgroup无法mount.让客户通过dd 备份5m数据,然后使用kfed分析 kefd分析结果 E:\OneDrive\ORACLE\recover\no_backup\asm\kfedwin>kfed read H:\temp\asmlib\xx.img kfbh.endian:           

oracle中fdisk导致的ASM磁盘数据丢失的解决方法_oracle

11.2.0.3 数据库因asm磁盘头块损坏宕机,出现错误ORA-15196.更详细的错误如下:ORA-15196: invalid ASM block header [kfc.c:26076] [endian_kfbh] [256] [0 != 1]进一步的检查发现DataGuard同样损坏.这让大家陷入不解,为何主库和备库会同时损坏? 最终经过仔细检查发现:是SA发现主机上一块磁盘没用,在主备都执行了fdisk mkfs. 最终的恢复得益于用户的异地灾备环境.这个案例给我们的警示是:1.DB

oracle中fdisk 导致的ASM磁盘数据丢失

11.2.0.3 数据库因asm磁盘头块损坏宕机,出现错误ORA-15196. 更详细的错误如下:ORA-15196: invalid ASM block header [kfc.c:26076] [endian_kfbh] [256] [0 != 1] 进一步的检查发现DataGuard同样损坏.这让大家陷入不解,为何主库和备库会同时损坏? 最终经过仔细检查发现: 是SA发现主机上一块磁盘没用,在主备都执行了fdisk mkfs. 最终的恢复得益于用户的异地灾备环境. 这个案例给我们的警示是:

oracle数据库11203 RAC(asm)恢复的例子

前天某客户的11203 rac(asm)出现掉电,导致数据库无法启动,注意数据库是归档模式.可见是多么倒霉. 据同事说开始是由于发redo和undo损坏导致无法启动,部分信息如下: Thu May 08 20:51:07 2014  Dumping diagnostic data in directory=[cdmp_20140508205107], requested by (instance=1, osid=13828272), summary=[incident=77085].  Abor

oracle中ASM DISK HEADER 备份与恢复的方法

最近遇到几次ASM DATA HEADER出问题导致DISK GROUP 不能正常的MOUNT,是的数据库不能正常工作,从来带来了无穷的麻烦,这个时候心想,如果我做了ASM DATA HEADER的备份该多好啊,可惜世上没有后悔药,建议大家检查下自己的ASM库,ASM HEADER是否已经做了备份,如果没有请及时处理下.这里试验提供了dd和kfed备份和恢复ASM HEADER 查询ASM相关信息  代码如下 复制代码 SQL> select group_number,name,state,to

Oracle中的ASM DISK HEADER 备份与恢复

最近遇到几次ASM DATA HEADER出问题导致DISK GROUP 不能正常的MOUNT,是的数据库不能正常工作,从来带来了无穷的麻烦,这个时候心想,如果我做了ASM DATA HEADER的备份该多好啊,可惜世上没有后悔药,建议大家检查下自己的ASM库,ASM HEADER是否已经做了备份,如果没有请及时处理下.这里试验提供了dd和kfed备份和恢复ASM HEADER 查询ASM相关信息 SQL> select group_number,name,state,total_mb,free