ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 查看oracle中被锁的对象

查看oracle中被锁的对象

原创 Linux操作系统 作者:nw5452 时间:2009-07-23 12:54:43 0 删除 编辑

在做一个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是否能被杀掉,不要导致用户或系统的错误。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10710960/viewspace-610020/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-13

  • 博文量
    21
  • 访问量
    59783