查看: 17594|回复: 47

刚刚处理了一个library cache lock的问题

[复制链接]
论坛徽章:
67
现任管理团队成员
日期:2012-06-02 02:10:00ITPUB元老
日期:2012-09-12 14:06:14ITPUB社区千里马徽章
日期:2013-06-09 10:15:34季节之章:冬
日期:2012-09-04 11:05:30季节之章:春
日期:2012-09-05 09:20:36优秀写手
日期:2013-12-18 09:29:09马上有房
日期:2014-04-10 13:35:362014年新春福章
日期:2014-04-14 09:54:08马上有车
日期:2014-02-28 16:43:13马上加薪
日期:2014-02-19 11:55:14
跳转到指定楼层
1#
发表于 2013-5-31 12:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚刚处理了一个 library cache lock 的问题,给大家分享下, 以便兄弟们遇到类似的问题多一个解决思路.
数据库版本11GR2, OS Oracle Linux
故障描述, 用某个用户登录,一直hang住,不报错
具体情况,接到反馈说,某个页面不能打开,检查了下该页面的日志,发现该页面对应的某个帐户A不能登录数据库。
于是直接尝试用sqlplus连接数据库,发现连接hang在那里。
检查等待事件,发现是 library cache lock
并且发现,除了我们的登录进程,还有一大堆的已经登录的进程被阻塞在library cache lock.
立刻做了一个4分钟的statspack(没装EM,只能用statspack) , 发现如下异常

Time Model System Stats  DB/Inst: xxxxx/xxxxx  Snaps: 1-2
-> Ordered by % of DB time desc, Statistic name

Statistic                                       Time (s) % DB time
----------------------------------- -------------------- ---------
connection management call elapsed             384,100.8     100.0
DB CPU                                              30.1        .0
sql execute elapsed time                            16.7        .0
PL/SQL execution elapsed time                        4.5        .0
parse time elapsed                                   1.2        .0



                                                             Avg          %Total
                                          %Tim Total Wait   wait    Waits   Call
Event                               Waits  out   Time (s)   (ms)     /txn   Time
---------------------------- ------------ ---- ---------- ------ -------- ------
library cache lock                    250    0    384,116 ######      0.0   99.9
library cache: mutex X             19,736    0        162      8      3.3     .0
log file sync                         518    0         11     21      0.1     .0
db file sequential read                44    0          1     32      0.0     .0
write complete waits                   47    0          1     16      0.0     .0


和之前的现象一样,大量library cache lock导致登陆hang住,时间全部消耗在了 connection management call elapsed
看看下面的top sql 没发现特别的发现。
通过查询x$kgllk等相关表,发现持有锁的对象名是1488, 查了查dba_object表,没找到这个名字开头的对象, 进程也是来自一个weblogic 的模块,没什么特别的, 所以一时没了头绪。

后来查了下metalink, 发现一篇文章 LIBRARY CACHE LOCKS DUE TO INVALID LOGINATTEMPTS [ID 1309738.1].
这个是Oracle的一个bug, 用户多次尝试登陆失败会产生library cache lock, 这个很好的解释了我的问题。 下面的问题就简单了,找到产生library cache lock的源头(可以参照文档How to Find whichSession is Holding a Particular Library Cache Lock [ID 122793.1] )
来源于weblogic的某个模块, 检查了该模块对应管理服务器的日志,果然发现了某个数据源多次连接失败的记录。
打开该数据源的配置,发现对应的帐户果然是存在问题的那个帐户。
询问了下管理员,他们是昨天晚上修改了DB帐户的密码,同时也修改了weblogic中数据源的密码,但是在设置密码的时候出现了错误,导致不正确的密码被保存进了中间件的数据源。

找到问题以后,解决就简单了,重新配置下这个数据源的密码,然后重启相关的管理服务器。之后又检查了下,一切都正常了。



论坛徽章:
5
复活蛋
日期:2012-11-02 16:27:37灰彻蛋
日期:2013-01-27 17:08:112013年新春福章
日期:2013-02-25 14:51:24复活蛋
日期:2013-05-27 15:29:10优秀写手
日期:2014-07-01 06:00:12
2#
发表于 2013-5-31 12:54 | 只看该作者

使用道具 举报

回复
论坛徽章:
2
2013年新春福章
日期:2013-02-25 14:51:24日产
日期:2013-10-16 11:39:40
3#
发表于 2013-5-31 13:12 | 只看该作者

使用道具 举报

回复
求职 : 数据库管理员
论坛徽章:
71
2011新春纪念徽章
日期:2015-05-19 13:15:06itpub13周年纪念徽章
日期:2014-09-28 13:09:30马上有对象
日期:2014-10-16 14:28:04马上加薪
日期:2014-11-10 10:43:10马上加薪
日期:2014-12-02 10:42:48马上有房
日期:2014-12-12 14:28:33马上有车
日期:2014-12-16 09:29:54马上加薪
日期:2014-12-22 17:00:50马上有对象
日期:2015-01-05 17:32:582010新春纪念徽章
日期:2015-01-23 11:01:59
4#
发表于 2013-5-31 14:02 | 只看该作者

使用道具 举报

回复
论坛徽章:
0
5#
发表于 2013-5-31 15:16 | 只看该作者

使用道具 举报

回复
论坛徽章:
289
蛋疼蛋
日期:2013-03-29 13:46:58优秀写手
日期:2013-12-24 06:00:12福特
日期:2014-02-17 17:30:59生肖徽章:兔
日期:2012-05-24 19:03:36SQL极客
日期:2013-12-09 14:13:35ITPUB季度 技术新星
日期:2014-02-24 11:00:06IT宝贝
日期:2014-08-27 10:32:17马上加薪
日期:2014-08-05 09:18:33SQL数据库编程大师
日期:2016-01-13 10:30:43玉石琵琶
日期:2014-03-04 16:46:07
6#
发表于 2013-5-31 15:44 | 只看该作者
mark下

使用道具 举报

回复
论坛徽章:
16
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:53ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:192011新春纪念徽章
日期:2011-02-18 11:43:332012新春纪念徽章
日期:2012-01-04 11:54:26奥运会纪念徽章:皮划艇激流回旋
日期:2012-08-23 11:18:00奥运会纪念徽章:田径
日期:2012-10-10 16:06:232010广州亚运会纪念徽章:跆拳道
日期:2011-04-22 13:13:28紫蛋头
日期:2012-05-25 10:31:30灰彻蛋
日期:2012-11-02 16:24:22
7#
发表于 2013-5-31 16:43 | 只看该作者
感谢分享

使用道具 举报

回复
论坛徽章:
15
ITPUB十周年纪念徽章
日期:2011-11-01 16:26:592014年新春福章
日期:2014-02-18 16:44:08雪佛兰
日期:2014-01-24 14:33:11技术图书徽章
日期:2013-11-28 14:00:57大众
日期:2013-09-17 13:38:59复活蛋
日期:2013-05-21 19:06:582013年新春福章
日期:2013-02-25 14:51:24鲜花蛋
日期:2012-12-02 19:35:19奥运会纪念徽章:手球
日期:2012-10-23 11:36:07ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00
8#
发表于 2013-5-31 17:29 | 只看该作者
11g,这个等待事件是: row cache lock (dc_user上的)

使用道具 举报

回复
论坛徽章:
490
红宝石
日期:2014-04-05 19:53:18海蓝宝石
日期:2014-04-05 21:24:30数据库板块每日发贴之星
日期:2013-05-27 22:53:45生肖徽章:鸡
日期:2014-08-24 18:39:29青年奥林匹克运动会-羽毛球
日期:2014-09-24 08:37:59马上有房
日期:2015-01-03 10:23:28喜羊羊
日期:2015-03-04 14:54:422015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-04-06 18:09:28版主6段
日期:2014-05-27 02:19:57
9#
发表于 2013-5-31 17:46 | 只看该作者
太师傅威武

使用道具 举报

回复
论坛徽章:
4
奥运会纪念徽章:射箭
日期:2012-07-20 08:53:47奥运会纪念徽章:帆船
日期:2012-07-26 15:46:49夏利
日期:2013-09-04 11:34:22林肯
日期:2013-10-14 14:23:47
10#
发表于 2013-5-31 18:22 | 只看该作者
可以 理解 为 HAND住了  就可能有  等待事件发生 是吧

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表