解決oracle死鎖

2021-04-13 04:34:49 字數 1604 閱讀 7182

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死鎖解決

自己實施測試成功步驟 a.查詢死鎖的使用者相關資訊 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 sess...

輕鬆解決Oracle死鎖

各位在使用oracle的過程中,偶爾會遇到死鎖問題,運用下面兩條語句即可輕鬆解決。查詢死鎖情況 select dob.object name table name,vss.sid,vss.serial vss.action action,vss.osuser osuser,vss.process a...

oracle解決死鎖

第一步 檢視是否有死鎖存在,查出有資料則代表有死鎖 select p.spid,c.object name,b.session id,b.oracle username,b.os user name from v process p,v session a,v locked object b,all...