oracle 11g 锁处理

运维过程中经常碰到数据库出现大量的锁的情况,以下记录了数据库锁处理的详细过程:

检查当前的数据库锁情况,获取对应的SID:

set line 150 pagesize 30000
select /*+ rule */ INST_ID, SID, TYPE, ID1, ID2, LMODE, REQUEST, CTIME, BLOCK  
from gv$lock where (ID1,ID2,TYPE) in  
(select ID1,ID2,TYPE from gv$lock where request>0)
order by ctime desc;

根据SID查询会话的详情,可能是某个用户在手动操作数据导致锁,需要和应用侧进一步确认锁的情况:

col sql_id for a15
col status for a10
col machine for a15
col event for a15
select username,machine,schemaname,sql_id,event,status,program from v$session where sid in (9926);

确认完毕以后,如果可以杀掉对应的会话,此时根据SID查询操作系统进程:

select p.spid from v$session s,v$process p where s.paddr=p.addr and s.sid=6562;

根据SID生成操作系统的kill命令:

select /*+ rule */
'ps -ef|grep LOCAL=NO |grep '||p.spid||'| awk ''{print $2}'' |xargs kill -9 '
  from v$session s, v$process p
where s.paddr = p.addr
and s.sid in (2247,4775,4170,1132,5224);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值