Oracle数据库锁表及解锁进程

整个过程主要涉及了v$locked_object、dba_objects、v$session
1、查询是否锁表

1
2
3
select count(*) from v$locked_object;

select * from v$locked_object;

2、查看哪个表被锁了

1
2
3
4
5
select b.owner,b.object_name,a.session_id,a.locked_mode

from v$locked_object a,dba_objects b

where b.object_id = a.object_id;

3、查看是哪个session引起的

1
2
3
4
5
select b.username,b.sid,b.serial#,logon_time

from v$locked_object a,v$session b

where a.session_id = b.sid order by b.logon_time;

4、杀掉对应的进程

1
alter system kill session'1025,41';

其中1025为sid,41为serial#。