ITPub博客

首页 > 数据库 > Oracle > Oracle中inactive会话的处理方法

Oracle中inactive会话的处理方法

原创 Oracle 作者:Rman2017 时间:2017-04-05 13:35:54 0 删除 编辑
1.方法一


(1)UNIX的方法
A。sql>select usename,sid,paddr,status
from v$session
where usename='USERNAME'
AND STATUS='INACTIVE';


B。sql>SELECT SPID FROM V$PROCESS WHERE ADDR=上一步查出的PADDR


C。$KILL SPID


(2)WINDOWSnt/2000的方法
c:\>orakill SID SPID


2 ,方法二


select A.SID,B.SPID,A.SERIAL#,a.lockwait,A.USERNAME,A.OSUSER,a.logon_time,a.last_call_et/3600 LAST_HOUR,A.STATUS,
'orakill '||sid||' '||spid HOST_COMMAND,
'alter system kill session '''||A.sid||','||A.SERIAL#||'''' SQL_COMMAND
from v$session A,V$PROCESS B where A.PADDR=B.ADDR AND SID>6
 
3 ,方法三


可以先设置IDLE_TIME(给用户指定PROFILE),INACTIVE状态的连接超过IDLE_TIME,SESSION的状态将改为SNIPED。
再先一个定时进程,使用楼上XIE3000的方法,杀进程就可以了。
KILLED 状态说明连接在回滚,当然会占用资源。
可以再将系统进程杀掉,再到数据库中杀一次进程。
 
4,方法四
我觉得可以在sqlnet.ora文件里面加上sqlnet.expire_time这个参数来解决,设置一个分钟数,这是ORACLE建议的DCD解决方法
 

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

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

注册时间:2017-03-30

  • 博文量
    352
  • 访问量
    132770