深入探讨: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

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐