1、故障描述
某日03:30分左右,某核心数据库产生大量library cache lock等待,严重影响业务正常运行。随后该故障在4:10分左右自动恢复,以下内容为本次故障原因排查之明细。
2、根因分析
查询dba_hist_active_sess_history历史会话信息,3:30分DBMS_SCHEDULER统计信息收集任务进行CW_XXX.CW_XXXX表收集时,被9082会话阻塞。导致后续与CW_XXXX表相关的查询会话均被library cache lock阻塞。可定位9082为阻塞的源头。
9082会话当时的语句记录如下
检查对应时间的alert日志,可看到提示信息有超出library cache object 51200K大小限制的对象被加载到SGA中。过程涉及PinMode=X锁的对象包含CW_XXX.CW_XXXX表
从统计信息历史记录中可发现CW_XXX.CW_XXXX表的统计信息均为3:30。与上述问题相关触发条件均匹配。
3、解决方案
合理控制sql语句长度和逻辑复杂度,避免超大对象加载入SGA时发生library cache lock等异常等待。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30310891/viewspace-3181475/ ,如需转载,请注明出处,否则将追究法律责任。