一般情况下,在杀一个会话的时候,直接执行alter system kill session 'sid,serial#';
但是在数据库中发现了异常的inactive会话,通过上面的kill杀掉之后,会话被标记为killed状态,但是依然存在,没有释放
这时候就直接采用immediate选项,强制杀掉会话
Administrator's Guide上说,当session是active的时候,alter system kill session 只是将session标识为killed 或者pseudo状态,并不会释放session持有的资源,所以我们在执行完alter system kill session 后,看会话还 是一直存在。
可以使用 immediate选项,强制立即Kill会话,如下:
SQL> alter system kill session '3964,51752' immediate; 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, then this clause has the same effect as described for KILL SESSION IMMEDIATE.
|