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

作者:袖梨 2022-06-29


这是某个网友的数据库,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都可以完美的解决这样的情况。
如果你遇到类似的数据库故障,那么请第一时间联系我们!

相关文章

精彩推荐