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...