Fri May 31 22:33:12 2024
WARNING: cache read a corrupt block: group=1(DATA) fn=1 blk=5137 disk=0 (DATA_0000) incarn=2212612836 au=5 blk=0 count=256
Errors in file /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_rbal_189188.trc:
ORA-15196: invalid ASM block header [kfc.c:26383] [endian_kfbh] [1] [5137] [255 != 1]
NOTE: a corrupted block from group DATA was dumped to /u01/app/grid/diag/asm/+asm/+ASM1/trace/+ASM1_rbal_189188.trc
故障描述
由于xx库在2024年5月31日上午出现归档日志异常增长现象,导致asm磁盘组空间被撑满。应急处理删除部分归档,后续规划进行磁盘组扩容,计划晚上添加两块1T磁盘。
2024年5月31日7:59,反馈磁盘划分完成同步挂载2块1T磁盘。
2024年5月31日20:00开始扩容asm磁盘组。
2024年5月31日22:38客户反馈,业务在2024年5月31日22:33左右无法连接。排查发现实例宕了,DATA磁盘组无法mount。
问题详细诊断过程
1.ASM告警日志
问题时间出现告警,DATA磁盘组成员盘newdata03(DATA_0000)异常导致磁盘
组无法挂载。
2.磁盘权限及磁盘报错au块检查
检查磁盘权限正常。磁盘对应au块显示损坏
3.系统磁盘检查
排查发现新增DATA磁盘组成员盘newdata03(DATA_0000),在系统上已经作为rman备份lv在使用。由此导致了DATA磁盘组的状态异常。
- 临时处理
检查备份,只有2024年5月30日的备份片。客户反馈无容灾库。尝试拉起data磁盘组。报磁盘头问题以及au=5 blk=0、au=5 blk=17损坏。尝试拉起磁盘组失败。
设置events尝试强制mount磁盘组,启动成功。取出归档,打算使用老的备份片加归档在其他环境恢复。
SQL> alter system set events '15195 trace name context forever, level 604';
SQL> alter system set asm_power_limit = 0;
中途发现该库存在dg备库,尝试备库强制打开、扩容资源、更换IP做临时库使用,支撑院内业务。
总结:
本次故障由于添加磁盘组沟通检查不到位,误将原有rman备份磁盘(双节点共享盘,二节点mount)newdata03作为新增扩容磁盘添加进磁盘组导致。
解决办法和建议
解决办法:
将临时单机库与修复好的老生产库搭建dg,于2024年6月4日晚业务空闲时间切换,让业务重新回归老的rac环境。
建议:
- 除了备份外,重要业务搭建容灾,以备不时之需。
- 重大操作之前,方案多方讨论,互相印证。
- 对服务器已经映射的磁盘加强检查,提前识别磁盘是否已经被使用,避免潜在的隐患和风险。