1. 程式人生 > >如何檢測被鎖住的Oracle儲存過程

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

今天遇到了這個情況,然後在網上找了到了這篇文章,借鑑過來做參考吧! 

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