联系:手机/微信(+86 17813235971) QQ(107644445)
标题:dblink会话引起library cache lock
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
有客户反馈,系统最近几天晚上都有卡顿
alert日志里面报如下错误
查看对应的trace文件
确定在收集统计信息的时候报ORA-04021错误.
查看这段时间ash报告
大量的library cache lock等待,而且引起等待的是类似语句,主要都是集中在一张表上,和收集统计信息报错的trace表匹配.
正好当天有对该表进行增加分区维护hang住
查询等待事件和阻塞情况
SQL> select distinct sid,a.BLOCKING_SESSION_STATUS,a.BLOCKING_INSTANCE,a.BLOCKING_SESSION 2 ,event from gv$session a where sid=7399; SID BLOCKING_SE BLOCKING_INSTANCE BLOCKING_SESSION ---------- ----------- ----------------- ---------------- EVENT ---------------------------------------------------------------- 7399 VALID 3 3593 library cache lock SQL> select a.INST_ID,a.sid,a.paddr,a.sql_id,a.event,a.MACHINE,a.PROGRAM 2 ,status from gv$session a where a.sid=3593; INST_ID SID PADDR SQL_ID ---------- ---------- ---------------- ------------- EVENT ---------------------------------------------------------------- MACHINE ---------------------------------------------------------------- PROGRAM STATUS ------------------------------------------------ -------- 3 3593 0000001F91E80670 grxhz2vpmsrc6 SQL*Net message from dblink WORKGROUP\XG PlatformSyn.exe ACTIVE
由于对应的sql_id 无法找到sql语句,不过根据等待事件基本上确认是调用一个dblink导致该问题,通过查询该回话,发现该回话一致处于active状态,但是一致无任何变化,实在可能处于僵死状态,对其进行kill之后,增加分区正常,收集统计信息正常.