1、通过shell模拟用户登录失败
cat test.sh
i=0
while [ $i -lt 100 ]
do
nohup sh test1.sh &
i=`expr $i + 1`
donecat test1.sh
sqlplus -S scott/scott << EOF --正确密码为oracle
EOF
2.查看等待事件以及对应的参数
set linesize 1000
col PARAMETER1 for a30
col PARAMETER2 for a30
col PARAMETER3 for a30
col name for a30
select name,PARAMETER1,PARAMETER2,PARAMETER3 from v$event_name where name=‘library cache lock’;

set linesize 1000
col event for a30
select sid,sql_id ,state,event,p3raw,blocking_session from v$session where wait_class !=‘Idle’;

–从如上输出可以得出以下结论
1>sid=213 阻塞了其他回话
2>sid=213获取到的锁是排他锁
3>sid=213的state 不等于WAITING,说明它当前无任何等待,library cache lock是上一个等待事件
3、P3参数转化,得到锁类型和namespace
–从P3= 00000000004F0003 可以得出以下信息:
0000 0000 004F 00030003:代表锁类型,3是Exclusive(3) --lock主要有三种模式: Null, share(2), Exclusive(3)
004F:代表namespace,换成10进制=76
select to_number(‘4f’,‘xxxxxxx’) from dual;col KGLHDNSD for a20
select distinct KGLHDNSP,KGLHDNSD from x$kglob where KGLHDNSP =79;
KGLHDNSP KGLHDNSD
---------- ------------------------------
79 ACCOUNT_STATUS–X$KGLOB 该视图定义为 [K]ernel[G]eneric [L]ibrary Cache Manager
4、以上内容在AWR中的体现:







