【故障】Oracle 隐含参数_asm_hbeatiowait设置不当引起的ASM磁盘组DISMOUNT
Oracle 隐含参数_asm_hbeatiowait引起的ASM磁盘组DISMOUNT
-
(1)恒生电子资管云HOMS系统B区2015年3月6日上午故障现象:【数据库服务器无法连接】
-
(2)恒生电子资管云HOMS系统B区2015年3月9日下午故障现象:【数据库服务器无法连接】
-
图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
-
诊断:存储OCR和voting DISK的ASM 磁盘组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磁盘组历史故障记录一例