某个普通用户登录一直hang住,不报错。library cache lock等待

本文深入分析了一种在Oracle数据库登录过程中遇到的librarycachelock等待问题,详细描述了问题的排查过程,包括如何通过V$SESSION_WAIT视图定位问题,以及如何通过分析DBA_HIST_ACTIVE_SESS_HISTORY找到根本原因。最终揭示了问题与11g新增的密码错误延迟验证特性有关,并提供了相应的解决方案。

故障描述

用某个用户登录数据库,一直hang住,不报错

于是直接尝试用sqlplus连接数据库,发现连接该用户时hang在那里,过很久之后会返回ORA-04021错误,但是别的用户都没问题。

SQL> conn pingshen/pingshencs
ERROR:
ORA-04021: 等待锁定对象  时发生超时


警告: 您不再连接到 ORACLE。

问题排查与解决

通过检查等待事件,发现是library cache lock
并且发现,除了登录进程,还有一大堆的已经登录的进程被阻塞在library cache lock.

经过测试,这个问题只发生在一个用户上,使用这个用户登录需要等待很长时间才会返回登录失败的信息,而使用其他的用户登录则不存在问题。

通过V$SESSION_WAIT视图,可以看到对应的等待事件:

SQL> select sid,event from v$session_wait;

V$SESSION_WAIT中查找有问题的wait

SQL> select event,count(*) from v$session_wait group by event;

EVENT                                                              COUNT(*)
---------------------------------------------------------------- ----------
SQL*Net message from client                                             125
rdbms ipc message                                                        12
smon timer                                                                1
pmon timer                                                                1
library cache lock                                                       97
Streams AQ: qmn slave idle wait                                           1
Space Manager: slave idle wait                                            1
SQL*Net message to client                                                 1
Streams AQ: qmn coordinator idle wait                                     1
VKTM Logical Idle Wait                                                    1
Streams AQ: waiting for time management or cleanup tasks                  1
DIAG idle wait                                                            2

已选择12行。
SQL> select distinct kglhdbsp,kglhdnsd from x$kglob;

  KGLHDBSP KGLHDNSD
---------- ----------------------------------------------------------------
         0 SQL AREA BUILD
         0 SQL AREA
         0 BODY
         1 ACCOUNT_STATUS
        15 SCHEMA
        30 SQL AREA
         0 SCHEDULER EARLIEST START TIME
        19 SQL AREA
        17 ACCOUNT_STATUS
      1188 ACCOUNT_STATUS
  
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值