oracle的用户session杀不掉,ORA | 您所在的位置:网站首页 › 在oracle中如何kill掉用户session › oracle的用户session杀不掉,ORA |
一般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 实验室设备网 版权所有 |