oracle 失效的会话,oracle killed会话不释放的问题

一般情况下,在杀一个会话的时候,直接执行alter system kill session ‘sid,serial#’;

Administrator's Guide说,当session是active的时候,alter system kill session 只是将session标识为killed

或者pseudo状态,并不会释放session持有的资源,所以我们在执行完alter system kill session 后,看会话还

是一直存在。

192078_0.jpg

这种情况下可以使用 immediate选项,强制立即Kill会话,如下:

SQL> alter system kill session '3964,51752' immediate;

SQL Language Reference   www.2cto.com  (http://docs.oracle.com/cd/B28359_01/server.111/b28286/toc.htm#BEGIN)

里对Immediate的解释是:IMMEDIATE Specify IMMEDIATE to instruct Oracle

Database to roll back ongoing transactions, release all session locks, recover the entire session state,

and return control to you immediately.

另外我们也可以使用alter system disconnect session

The POST_TRANSACTION setting allows ongoing transactions to complete before the session is disconnected.

If the session has no ongoing transactions, then this clause has the same effect described for as KILL SESSION.

The IMMEDIATE setting disconnects the session and recovers the entire session state immediately, without

waiting for ongoing transactions to complete.

If you also specify POST_TRANSACTION and the session has ongoing transactions, then the IMMEDIATE keyword is ignored.

If you do not specify POST_TRANSACTION, or you specify POST_TRANSACTION but the session has no ongoing transactions,  www.2cto.com

then this clause has the same effect as described for KILL SESSION IMMEDIATE.

192078_1.jpg

ORACLE建议的DCD解决方法

修改sqlnet.ora文件,新增expire_time=x(单位是分钟)

通过ALTER PROFILE DEFAULT LIMIT IDLE_TIME x; 命令修改,重启后生效。

通过OS杀进程终止会话

1 SELECT spid, osuser, s.program, schemaname

2 FROM gv$process p, gv$session s

3 WHERE p.addr = s.paddr;

1.UNIX

kill -9 5745

ps -ef | grep pmon_$ORACLE_SID | awk '{print $2}' | xargs kill –9 #kill 一批会话

2. WINDOWS

orakill

如果会话已经在DB里killed,上面的SQL已经查不出spid,可以用下面的SQL查出SPID

1 select addr, pid, spid

2   FROM v$process p

3  where addr in (select p.addr

4                   from v$process p

5                  where pid <> 1

6                 minus  www.2cto.com

7                 select s.paddr from v$session s)

作者 DB&*NIX

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值