ITPub博客

首页 > 数据库 > Oracle > oracle 表被锁,查锁,杀锁语句

oracle 表被锁,查锁,杀锁语句

原创 Oracle 作者:linmenglan1 时间:2016-09-21 17:17:46 0 删除 编辑
一张表 被锁,我么可以查出被锁表,被锁表机器,sid,serial,lockwait,sql_hash_value 
查看锁表进程SQL语句1: 

 SELECT object_name 被锁表 , machine 所属机器, l.ORACLE_USERNAME 表所在用户,s.sid, s.serial# ,s.LOCKWAIT ,s.SQL_HASH_VALUE
FROM gv$locked_object l, dba_objects o, gv$session s 
WHERE l.object_id = o.object_id 
AND l.session_id = s.sid and o.Object_Name='T_BM_VOICE_ACCOUNT' ;



然后用上面的  SQL_HASH_VALUE 值来找着锁着张表的sql 语句
select * from v$sql a where a.HASH_VALUE=802686780;

来确定具体是什么语句导致锁表,再根据上面的 sid 和 serial#, 进行杀锁:这里主要先找出 lockwait 值不为空的先进行杀锁:

杀掉锁表进程: 
如果有记录则表示有lock,记录下sid 和 serial#,将记录的id 替换下面的738,1429,即可解除LOCK
alter system kill session '738,1429'; 

杀完锁之后,再根据上面的sql 语句再手动执行下,看还会不会锁住,不会锁住,就OK了



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31369373/viewspace-2125285/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-07-03

  • 博文量
    85
  • 访问量
    157918