一个用户进程偶尔会挂起或占用过多资源而拒绝其它会话。如果 DBA 依然能够访问数据库,通常可以发出以下查询
SELECT S.USERNAME,S.OSUSER,S.SID,S.SERIAL#,P.SPID FROM V$SESSION S,V$PROCESS P WHERE
S.PADDR=P.ADDR AND S.USERNAME IS NOT NULL;
通过 ALTER SYSTEM KILL SESSION 'SID,SERIAL#' 命令来杀SESSION
要杀掉已锁的SESSION,WINDOWS下可以通过下载诸如QUICK SLICE等命令行工具,在命令行中直接执行ORAKILL <SID><SPID>即可。不利用这些工具,则要为ORAKILL命令提供更多的的参数,诸如相应的WINDOWS线程等。
在网上也搜索到了一些相关的信息
===================================================================================================
处理方法一 :
1.SELECT saddr,sid,serial#,paddr,username,status FROM v$session WHERE username IS NOT NULL
example:saddr,sid,serial#,paddr,username,status FROM v$session WHERE username = 'XNJW0419' ;
SADDR SID SERIAL# PADDR USERNAME STATUS
-------- ---------- ---------- -------- ------------------------------ --------
542E0E6C 11 314 542B70E8 EYGLE INACTIVE 542E5044 18 662 542B6D38 SYS ACTIVE
2.ALTER SYSTEM KILL SESSION 'sid, serial#';
example:ALTER SYSTEM KILL SESSION '11,314';(注:在sqlplus中执行 )
结果: 提示标记要删去的会话 无法释放会话,未成功解锁
====================================================================================================
处理方法二 :
a、 找到你要杀掉的那个SESSION, 并记下paddr
SELECT sid, username, paddr, status FROM v$session WHERE username = '用户名' ;
example:SELECT sid, username, paddr, status FROM v$session WHERE username = 'XNJW0419' ;
SID USERNAME PADDR STATUS
---------- ------------------------------ -------- --------
10 XNJW0419 2B5E2E2C KILLED
b、 找到这个SESSION所对应的spid
SELECT * FROM v$process WHERE addr = '上面查寻的paddr';
example:SELECT ADDR,PID,SPID,USERNAME,SERIAL#,TERMINAL FROM v$process WHERE addr = '2B5E2E2C';
ADDR PID SPID USERNAME SERIAL# TERMINAL
-------- ---------- ------------ --------------- ---------- ----------------
2B5E2E2C 44 1204 SYSTEM -99 JWC
c、 杀掉spid所标识的那个进程
D:\>orakill sid spid (注:cmd命令窗口中执行 只有oracle服务器端才有orakill命令)
example: D:\>orakill oemrep 1204
提示:KILL OF THREAD id 1204 IN INSTANCE oemrep successfully signalled.
结果:成功删除该SESSION,表也解锁
分享到:
相关推荐
自己整理的关于oracle session的状态查看,对新手有一定的帮助,希望您喜欢。
快速杀死oracle的session快速杀死oracle的session快速杀死oracle的session快速杀死oracle的session快速杀死oracle的session快速杀死oracle的session
oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解oracle_v$session_v$session_wait用途详解...
非常好的oracle session 连接关系图
oracle中参数session和processes的设置
orckle kill session,讲述如何去kill session
oracle process与session 查询 设定 与关系
ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁 3:Row-X 行专用(RX):用于行的修改 4:Share 共享锁(S):阻止其他DML操作 5:S/Row-X 共享行专用(SRX):阻止其他...
有效关闭Oracle死锁进程,和释放状态为killed的session
oracle中已killed session的处理
Oracle 数据库解锁session方式
重启oracle服务,删除session,亲测没有问题
一、问题的提出很多的时候我们迅速的杀掉Oralcle的一些session,理由大体如下: 1、 一些时候,由于我们的数据量很大,相应的事务大并且多,在做shutdown immediate的时候会花费好多的时间,而我们却想用shutdown ...
Oracle疑难:session无法完全删除问题
Oracle_Kill_Session_终极篇
oraclev$sessionv$session_wait用途详解
查询ORACLE 系统中当前会话正在执行的有关SQL语句。
彻底清除Oracle中长时间持锁的session
主要介绍了对于oracle对session进行跟踪的分析,涉及判断SQL性能优劣的信息等内容,需要的朋友可以参考下。
简明的提供oracle的初始化参数包括Process,Session,SGA,PGA的修改命令,这些参数的具体值根据实际来定。