ITPub博客

首页 > 数据库 > Oracle > library cache lock等待事件

library cache lock等待事件

原创 Oracle 作者:DBA_每日记 时间:2019-11-05 17:26:42 0 删除 编辑

问题背景,客户反馈DB服务器cpu异常高


1> 查看AWR报告

 

大量library cache lock等待

大量library cache lock导致登陆hang住,时间全部消耗在了 connection management call elapsed

先查杀等待会话

select 'alter system kill session ''' || a.sid || ',' || serial# || ''';'

  from v$session a

 where a.username='ECOLOGY' 

 AND a.STATUS='ACTIVE'    

 and event in('library cache lock','library cache: mutex X')


3> 

对于正常的系统,由于密码的更改,可能存在某些被遗漏的客户端,不断重复尝试使用错误密码登录数据库,

从而引起数据库内部长时间的”library cache lock”或”row cache lock”的等待,这种情形非常常见。

这种现象在Oracle 10.2和11.1中体现的等待事件为:”row cache lock”,而在Oracle 11.2中体现的等待事件为:”library cache lock”。


在 Oracle 11g 中,为了提升安全性,Oracle 引入了『密码延迟验证』的新特性。这个特性的作用是,如果用户输入了错误的密码尝试登录,

那么随着登录错误次数的增加,每次登录前验证的时间也会增加,以此减缓可能对于数据库重复的口令尝试攻击。

(确实有错误的数据库连接)

但是对于正常的系统,由于口令的更改,可能存在某些被遗漏的客户端,不断重复尝试,从而引起数据库内部长时间的 Library Cache Lock的等待,这种情形非常常见。

如果遇到这一类问题,可以通过Event 28401关闭这个特性,从而消除此类影响,以下命令将修改设置在参数文件中:


ALTER SYSTEM SET EVENT = '28401 TRACE NAME CONTEXT FOREVER, LEVEL 1' SCOPE = SPFILE;


 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69950231/viewspace-2662769/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-10-09

  • 博文量
    68
  • 访问量
    27316