Oracle 杀死session的方法
生活随笔
收集整理的這篇文章主要介紹了
Oracle 杀死session的方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
有時數(shù)據(jù)庫有些session產(chǎn)生死鎖托慢整個數(shù)據(jù)庫,需要找出那個進程然后kill掉.
在sybase中, 結(jié)合sp_who 和 kill sid就可以了.
在oracle中也有類似的方法:
首先是找出要殺死的session id(SID)
可以利用v$mystat 來查看當前session的sid.
若要殺死的session 已卡住.
則可以用dba session執(zhí)行下面命令來查看當前服務(wù)器的session 然后排除
select * from v$session where username is not null;
得到sid后執(zhí)行
alter system kill session 'sid,serial#' immediate;
就可以殺死對應(yīng)session
一般情況下殺死1個session后, 那個session在v$session中對應(yīng)的行就會消失.
但是也有例外,
如下面那個例子:? 我要殺死HR的那個進程
但是再查看v$session 對應(yīng)那行還是存在的,只不過狀態(tài)成為了killed.
我也不知道有什么影響, 這時嘗試找出對應(yīng)的進程pid(在服務(wù)器的進程pid),
聯(lián)合v$process
執(zhí)行:
select s.sid,s.serial#,s.username,p.spid from v$session s, v$process p
where s.username is not null and s.paddr = p.addr
然后去服務(wù)器刪掉它吧...
在sybase中, 結(jié)合sp_who 和 kill sid就可以了.
在oracle中也有類似的方法:
首先是找出要殺死的session id(SID)
可以利用v$mystat 來查看當前session的sid.
若要殺死的session 已卡住.
則可以用dba session執(zhí)行下面命令來查看當前服務(wù)器的session 然后排除
select * from v$session where username is not null;
得到sid后執(zhí)行
alter system kill session 'sid,serial#' immediate;
就可以殺死對應(yīng)session
一般情況下殺死1個session后, 那個session在v$session中對應(yīng)的行就會消失.
但是也有例外,
如下面那個例子:? 我要殺死HR的那個進程
但是再查看v$session 對應(yīng)那行還是存在的,只不過狀態(tài)成為了killed.
我也不知道有什么影響, 這時嘗試找出對應(yīng)的進程pid(在服務(wù)器的進程pid),
聯(lián)合v$process
執(zhí)行:
select s.sid,s.serial#,s.username,p.spid from v$session s, v$process p
where s.username is not null and s.paddr = p.addr
然后去服務(wù)器刪掉它吧...
總結(jié)
以上是生活随笔為你收集整理的Oracle 杀死session的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 事务概述
- 下一篇: Shared pool内存块组成结构及4