oracle的用户session杀不掉,ORA 您所在的位置:网站首页 在oracle中如何kill掉用户session oracle的用户session杀不掉,ORA

oracle的用户session杀不掉,ORA

2023-10-25 13:40| 来源: 网络整理| 查看: 265

一般Oracle 中的进程会通过PL/SQL 执行以下语句

select c.owner, c.object_name, c.object_type, b.sid, b.serial#,

b.status, b.osuser, b.machine from

v$locked_object a, v$session b, dba_objects c

where b.sid = a.session_id

and a.object_id = c.object_id;

上面的语句得出 SID 和 SERIAL#

alter system kill session '137,1681'

immediate;

其中 "137" 为 SID

"1681" 为SERIAL#

来进行"Killed"

,执行完之后,状态为"Killed",但是锁定的资源会很长一段时间不释放,一开始没有办法,只好重启数据库。

后来,经过研究,搜索资料,现提供下面的解决办法,进行杀掉锁的进程。

解决办法如下:

1、通过上面的命令来杀死进程,进程的状态会被置为"killed",但是锁定的资源没有被释放,那么可以在os一级再杀死相应的进程(线程),首先执行下面的语句获得进程(线程)号:

select spid,osuser,s.program

from v$session s,v$process p

where s.paddr = p.addr and s.sid =

'137'

注:这里的 '137' 就是第一段语句查出来的SID,

执行上述语句,得出来的SPID 为

728

2、在OS 上通关cmd命令来杀死这个进程(线程)

1)第一种,在UNIX OS 上,用ROOT 身份执行下面的命令:

#kill -9 728 (728 1中的语句查询出来的SPID)

2)第二种,在WINDOWS,用orakill杀死线程,

语法为:orakill sid thread

注:SID,这里的SID

为你杀死该进程的数据库的实例名

THREAD,指的是你要杀掉该进程的线程号,为1中查询出来的SPID

例子如下:

C:\Documents and Settings\Administrator>orakill

zghx 728

Kill of thread id 728 in instance zghx successfully

signalled.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有