ORACLE查询数据库的锁表情况

 

查询数据库的锁表情况语句如下:

SELECT p.spid,a.serial#, c.object_name,b.session_id,b.oracle_username,b.os_user_name
     FROM v$process p,v$session a, v$locked_object b,all_objects c
    WHERE p.addr=a.paddr 
      AND a.process=b.process 
      AND c.object_id=b.object_id

如果表因为某些情况出现死锁,可以使用ORACLE管理员权限账户登录到数据库,根据上面查出来的 session_id和serial#列的值,Kill指定会话,释放锁,语句如下:

ALTER SYSTEM KILL SESSION sid, serial#

有些情况下,仍无法释放表,此时可以考虑从操作系统(以Linux系统为例)角度,根据上面查出来的spid进程号,将对应进程Kill掉,语句如下:

Kill -9 SPID

ORACLE查询数据库的锁表情况,布布扣,bubuko.com

ORACLE查询数据库的锁表情况

上一篇:MySQL 通配符学习小结


下一篇:ORACLE中将数字转换为英文