问题描述:
出现大量的latch free等待,系统严重阻塞。
该latch为p2=4号session allocation等待。应用报错ORA-00018,无 法建立新的连接。
问题分析:
1) 查看OS相关资源指标,未发现异常。
2) 比较14:51 以及14:52 Listener .log ,主要是以下机器连接进来, 也可以看出14:52连接数明显明大,可否找应用看看这些个连接是不是都是正常的?
点击(此处)折叠或打开
3) 数据库当时抓取到大量latch#=4 即session allocation 的latch free等待,
大量新建的连接都等待在这个event上, 顾名思义,当时认为这个latch只是session在新建连接的时候需要申请的。
Session allocation Latch 每天都 有,检查其历史记录,之前也发生过,只是之前不太严重而已,我们也想知道每天产生的时间有没有规律,
点击(此处)折叠或打开
4) 经过对v$session, v$session_wait的采集,发现有个异常的会话,持有了control file sequential read。 随之伴随应用用户产生了大量session allocation的等待,进而导致session数冲满。
后续dba的查询sql退出后,异常等待消失。当再次执行这个语句时,问题就重现了。
点击(此处)折叠或打开
5) v$database的视图访问基表x$kccdi,这个视图是从control file中读取,从而导致control file sequential read的次数。由于该语句执行计划异常,导致先访问dba_segments表,然后再进行nested loop访问v$database。
6)修改了该语句访问方式。
点击(此处)折叠或打开
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25105315/viewspace-2133566/,如需转载,请注明出处,否则将追究法律责任。