下面的语句用来查询哪些对象被锁
代码如下
select object_namemachinessidsserial#
from v$locked_object ldba_objects o v$session s
where lobject_id=oobject_id and lsession_id=ssid;
下面的语句用来杀死一个进程
代码如下 alter system kill session
;
(其中分别是上面查询出的sidserial#)
【注】以上两步可以通过Oracle的管理控制台来执行
如果利用上面的命令杀死一个进程后进程状态被置为"killed"但是锁定的资源很长时间没有被释放那么可以在os一级再杀死相应的进程(线程)首先执行下面的语句获得进程(线程)号
代码如下
select spid osuser sprogram
from v$session sv$process p
where spaddr=paddr and ssid= (是上面的sid)
在OS上杀死这个进程(线程)
)在unix上用root身份执行命令:
#kill (即第步查询出的spid)
)在windows(unix也适用)用orakill杀死线程orakill是oracle提供的一个可执行命令语法为
orakill sid thread
其中
sid表示要杀死的进程属于的实例名
thread是要杀掉的线程号即第步查询出的spid
例c:>orakill orcl