方法一:
1.查被鎖的物件
select * from v$db_object_cache where owner='過程的所屬使用者' and locks!='0';
2. 查是哪乙個sid,通過sid可知道是哪個session.
select * from v$access where owner='過程的所屬使用者' and object='剛才查到的過程名';
3. 查出sid和serial#
select sid,serial#,paddr from v$session where sid='剛才查到的sid'
select spid from v$process where addr='剛才查到的paddr';
4. 殺程序
(1).先殺oracle程序: alter system kill session '查出的sid,查出的serial#';
(2).再殺作業系統程序: kill -9 剛才查出的spid
或orakill 剛才查出的sid 剛才查出的spid
方法二:
1)查詢死鎖的程序:
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 and ses.paddr=pro.addr;
其中sid用死鎖的sid替換。
exit
ps -efgrep 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死鎖程序
檢視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 方...
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....