当前位置: 移动技术网 > IT编程>数据库>Oracle > 深入探讨:Oracle中如何查询正锁表的用户以及释放被锁的表的方法

深入探讨:Oracle中如何查询正锁表的用户以及释放被锁的表的方法

2017年12月12日  | 移动技术网IT编程  | 我要评论

可在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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网