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