如何殺死oracle死鎖程序

2021-04-19 00:15:07 字數 1823 閱讀 8686

檢視session操作狀態

select * from v$session_wait

where event<>'rdbms ipc message'

and event<>'sql*net message from client'

and event<>'pmon timer'

and event<>'**on timer'

方法一:

1.查哪個過程被鎖

查v$db_object_cache檢視:

select

*from

v$db_object_cache 

where

owner='

過程的所屬使用者

'and

locks

!='0'

;2. 查是哪乙個sid,通過sid可知道是哪個session.

查v$access檢視:

select

*from

v$access 

where

owner='

過程的所屬使用者

'and

name='

剛才查到的過程名';

3. 查出sid和serial#

查v$session檢視:

select

sid,serial#,paddr 

from

v$session 

where

sid=

'剛才查到的sid

'查v$process檢視:

select

spid 

from

v$process 

where

addr='

剛才查到的paddr';

4. 殺程序

(1).先殺oracle程序:

alter

system 

kill

session 

'查出的sid,查出的serial#';

(2).再殺作業系統程序:

kill-9

剛才查出的spid

或orakill 剛才查出的sid 剛才查出的spid

方法二:

經常在oracle的使用過程中碰到這個問題,所以也總結了一點解決方法:)

1)查詢死鎖的程序:

sqlplus "/as

sysdba"

select

s.username,l.

object_id

,l.session_id,s.serial#,l.oracle_username,l.os_user_name,l.process 

from

v$locked_object l,v$session s 

where

l.session_id

=s.sid; 

2)kill掉這個死鎖的程序:

alter

system 

kill

session 『sid,serial#』;  (其中sid

=l.session_id)

3)如果還不能解決,

select

pro.spid 

from

v$session ses,v$process pro 

where

ses.sid

=xx 

andses.paddr

=pro.addr;  

其中sid用死鎖的sid替換。

exit

ps -ef

|grep spid

其中spid是這個程序的程序號,kill掉這個oracle程序。 

殺死Oracle死鎖程序

很多人應該都遇到多oracle程序死鎖的情況,下面是兩個簡單的sql,來殺死死鎖程序 sep27,2008 eleven.xu select locked process select s.username,l.object id,o.name,l.session id,s.serial l.ora...

Oracle殺死死鎖程序

oracle殺死死鎖程序 先檢視哪些表被鎖住了 select b.object name,a.session id,c.serial a.locked mode from v locked object a,dba objects b,v session c where b.object id a....

Oracle 殺死死鎖程序

oracle 殺死死鎖程序 利用pl sql developer工具可以很容易模擬死鎖現象。用同乙個資料庫的同乙個使用者登入2個pl sql developer。首先,在其中乙個pl sql developer隨便對資料庫的表執行乙個更新操作,不要提交,狀態為 待提交 然後,在另乙個pl sql d...