本站文章除注明转载外,均为本站原创: 转载自love wife & love life —Roger 的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都可以完美的解决这样的情况。
如果你遇到类似的数据库故障,那么请第一时间联系我们!
Related posts: