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