【故障】Oracle 隐含参数_asm_hbeatiowait设置不当引起的ASM磁盘组DISMOUNT

Oracle 隐含参数_asm_hbeatiowait引起的ASM磁盘组DISMOUNT

  • 1)恒生电子资管云HOMS系统B201536日上午故障现象:【数据库服务器无法连接】

  • 2)恒生电子资管云HOMS系统B201539日下午故障现象:【数据库服务器无法连接】


  • 1-1 事故现场截图

  • 根据应用层返回错误结合ASM日志和告警日志文件信息分析。错误出现原因分析如下图。

1-2 应用层返回错误原因

  • 采取措施1:查看集群资源状态:crsctl status res -t

    系统返回1:集群资源状态无法获取,错误监听不存在【TNS-12541:TNS:NO LISTENER】

    采取措施2:检查OCR以及Voting DISK状态:ocr check

    系统返回2:OCR与voting DISK状态无法获取,错误监听不存在【TNS-12541:TNS:NO LISTENER】
     
    初步判断:监听程序已经失败。

    验证措施1:srvctl status listener

    返回错误1:监听程序不存在。=>确定监听已经失败。
     
    查看监听进程:ps -ef|grep lsnr

    验证结果:监听框架已经启动,监听进程存在。

    进一步判断:监听没有工作,框架内任务失败。
     
    查看集群件跟踪文件:

    /u01/app/grid/oradiag_grid/diag/clients/user_grid/host_1874443374_80/trace

    发现DATA磁盘组失败,导致监听程序无法访问OCR,引起监听资源异常。具体如下:
     

    1-3  0309下午库监听初次失败时间


    1-4  trace文件显示ASM磁盘组DATA dismount之后的connect failed
  • 诊断:存储OCRvoting DISKASM 磁盘组DATA 发生故障,导致DATA磁盘组OFFLINE,由此引发监听无法工作,因为RAC监听作为资源注册到了OCR,此时OCR不可访问。


    1-5 错误后RAC系统行为

    诊断:Oracle 集群件不断尝试重新mount DATA,但是可能因为文件句柄等内部错误而失败。DATA磁盘组内磁盘文件头可能发生逻辑损坏。没有理由冗余的2个镜像都发生读取失败(两个磁盘都坏掉的几率还是比较小的),如下图由ASM日志发现DATA两个镜像MIRROR都发生了读取失败:
  • 该日志告诉我们在两个镜像数据文件的偏移量为724992的位置发生错误,I/O请求失败,可能发生数据块的物理损坏或者逻辑错误。可以发现,网络传输的请求能够准确到达内核层面,但是内部或I/O处理出现错误。重要的是故障发生时刻的进程状态与磁盘文件头状态信息,是否发生不一致导致磁盘组DISMOUNT

  • 仔细查看ASM日志,发现该问题在2014年就已经出现过DATA磁盘组的dismount问题,具体截图如下所示:(其实该问题的征兆早就已经出现


  • 1-7 查看ASM历史日志

    这是什么情况???

    貌似这个时间就已经有ASM磁盘组DATA的问题了。



  • 1-8 DATA错误一例


    1-9 ASM磁盘组历史故障记录一例
     

    1-10 ASM磁盘组历史故障记录一例



    1-11 ASM磁盘组历史故障记录一例

     

猜你喜欢

转载自askerain.iteye.com/blog/2294530
今日推荐