分类: Oracle
2010-10-25 10:01:23
select p.addr from v$process p where pid <> 1在sqlnet.ora里设置sqlnet.expire_time=2理论上应该隔2分钟就会扫描sinped的进程将其清除,但是在标记为sniped之后反复查询始终保持这个状态,并没有被清除,同时
minus
select s.paddr from v$session s;
得到addr,再查询v$process获取spid,从系统中彻底kill这个进程.kill -9 spid
至于在系统中kill进程会不会有什么坏的影响,没有研究
SNIPED 在profile中设定idle_time时间,系统会在超时后讲进程标记为sniped状态,同样也是在用户重新尝试连接后报错清除
可以为用户指定独立的profile,控制idle_time,比如ALTER PROFILE DEFAULT LIMIT IDLE_TIME 3;
在session1里
SQL> conn lin/lin@fox
Connected.
在session2里sqlplus "/as sysdba"
SQL> select status,paddr,to_char(logon_time,'yyyymmdd hh24:mi:ss'),to_char(sysda
where username='LIN';
STATUS PADDR TO_CHAR(LOGON_TIM TO_CHAR(SYSDATE,'
-------- -------- ----------------- -----------------
INACTIVE 6921048C 20101025 10:49:53 20101025 10:53:37
SQL> select status,paddr,to_char(logon_time,'yyyymmdd hh24:mi:ss'),to_char(sysda
where username='LIN';
STATUS PADDR TO_CHAR(LOGON_TIM TO_CHAR(SYSDATE,'
-------- -------- ----------------- -----------------
SNIPED 6921048C 20101025 10:49:53 20101025 10:54:02
SQL> select spid from v$process where addr='6921048C';
SPID
------------
5224
Limitations on using this terminated connection detection feature are:
chinaunix网友2010-10-25 16:31:12
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com