如何檢測被鎖住的Oracle儲存過程

531968912發表於2016-07-18
今天遇到了這個情況,然後在網上找了到了這篇文章,借鑑過來做參考吧! 

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.殺程式
4.1先殺oracle程式
alter system kill session '查出的sid,查出的serial#';
4.2再殺作業系統程式
如果是unix
kill -9 剛查出的spid
如果是windows
orakill 剛查出的sid 剛查出的spid

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2122184/,如需轉載,請註明出處,否則將追究法律責任。

相關文章