您的位置:首页 > 数据库 > Oracle

Oracle中查询正锁表的用户及释放被锁的表的方法

2012-11-16 10:35 344 查看
可在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: