深入探讨:Oracle中如何查询正锁表的用户以及释放被锁的表的方法
可在pl/sql中用如下sql语句来查询当前数据库中哪些表被锁住了,并且是哪些用户来锁的这些表:
select
a.owner, --object所属用户
a.object_name, --object名称(表名)
b.xidusn,
b.xidslot,
b.xidsqn,
b.session_id, --锁表用户的session
b.oracle_username, --锁表用户的oracle用户名
b.os_user_name, --锁表用户的操作系统登陆用户名
b.process,
b.locked_mode,
c.machine, --锁表用户的计算机名称(例如:workgroup\username)
c.status, --锁表状态
c.server,
c.sid,
c.serial#,
c.program --锁表用户所用的数据库管理工具(例如:ob9.exe)
from
all_objects a,
v$locked_object b,
sys.gv_$session c
where
a.object_id = b.object_id
and b.process = c.process
order by 1,2 同时可用如下命令来kill掉当前锁表的项:
alter system kill session 'sid, serial#'
--例如:alter system kill session '57, 10325
上一篇: PHP实现简单数字分页效果