暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

library cache lock--通过密码错误模拟连接风暴

原创 四九年入国军 2024-08-05
191

1、通过shell模拟用户登录失败

cat test.sh
i=0
while [ $i -lt 100 ]
do
nohup sh test1.sh &
i=`expr $i + 1`
done

cat 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 0003

0003:代表锁类型,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中的体现:

最后修改时间:2024-08-05 16:01:19
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论