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

查看oracle中被锁的对象

2015-11-24 15:33 567 查看
转自:http://space.itpub.net/10710960/viewspace-610020

在做一个delete操作后,点击commit提交,结果toad挂了。

判断相关的表应该被锁了。于是进行如下操作

--查看oracle中被锁的对象

select a.owner, a.object_name, b.xidusn, b.xidslot, b.xidsqn, b.session_id, b.oracle_username, b.os_user_name, b.process, b.locked_mode,

c.machine, c.status, c.server, c.sid, c.serial#, c.program

from all_objects a, v$locked_object b, v$session c

where ( a.object_id = b.object_id )

and (b.process = c.process )

order by 1,2;

根据查询到的session_sid查询出session的详细信息:

select saddr,a.sid,a.serial#,paddr,a.username,machine,status,b.spid from v$session a,v$process b where a.paddr=b.addr and a.sid=''

如果确保此lock无效,可以kill掉该session

alter system kill session ’sid,serial#’ ;

使用kill session方式杀掉进程后,发现该session的状态是killed,但还是无法做delete操作,所以决定将OS下的进程杀掉。

使用kill -9。这里其实就是要考虑当前这个process是否能被杀掉,不要导致用户或系统的错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: