1、故障描述
某日上午业务高峰期某核心数据库发生性能异常故障。RAC架构1号节点大量数据库会话发生异常等待事件,数据库整体处于卡死状态。以下内容为本次故障排查之明细。
2、 根因分析
(1)、尝试登录数据库 RAC 1节点服务器,无法连接,主机处于卡死状态
(2)、登录数据库 RAC 2节点服务器,查询当前数据库等待事件
大量会话处理gc集群等待状态。
(3)、由于当前时间处理业务高峰期,且节点1处理无法连接状态,在节点2执行命令先关闭节点1数据库,使数据库恢复正常。
$ srvctl stop instance -d xh_xxdb -i xh_xxdb1 -o abort
(4)、数据库 RAC 1节点服务器恢复正常后,登录检查原因,检查lgwr日志发现,故障时间点lgwr写入存在高延迟告警,最高值为3279ms。
(5)、进一步排查lgwr日志发现问题最早出现于3月5日,在3月10日出现一次4507ms的长时间等待,业务端同样有可感知卡顿。
Awr报告同样显示大量异常等待
3、解决方案
综合上述分析判断,数据库RAC 1节点服务器存在偶发的lgwr写入高延迟问题.
我们知道RAC的核心优势“缓存融合”允许数据块在节点间直接传递,而无需每次都从磁盘读取。但这个过程有一个严格的约束:当一个节点(节点A)修改了一个数据块(Current Block),另一个节点(节点B)想要读取或修改这个块的最新版本时,节点A的LMS进程在发送这个块之前,必须确保与该块修改相关的所有Redo日志已经由LGWR写入磁盘。故LGWR写入延迟会直接影响RAC整体性能。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30310891/viewspace-3181481/ ,如需转载,请注明出处,否则将追究法律责任。