關於Oracle程序鎖

2021-09-28 02:18:48 字數 1255 閱讀 3328

以下sql可以找出鎖表的程序

select sess.sid, 

sess.serial#, 

lo.oracle_username, 

lo.os_user_name, 

ao.object_name, 

lo.locked_mode 

from v$locked_object lo, 

dba_objects ao, 

v$session sess 

where ao.object_id = lo.object_id and lo.session_id =sess.sid; 

以下sql可以找出編譯儲存過程、函式、包的程序

select *

from v$session s, sys.x$kglob o, sys.x$kglpn p

where upper(o.kglnaobj) like upper('%不能編譯的包體%')

and p.kglpnhdl = o.kglhdadr

and s.saddr = p.kglpnuse;

select * from v$session t1, v$locked_object t2 where t1.sid = t2.session_id; 

找出sid與serial#後執行以下語句閉關session

alter system kill session  '144,46679'  ; 

但我們想停止正在執行的job時,dbms_jobs.broken + remove時無法將其停止只是打上停止標記,需要用以下方法:

執行下面的語句獲得程序(執行緒)號:

select spid, osuser, s.program

from v$session s,v$process p

where s.paddr=p.addr and s.sid=524 (524是上面的sid)

在os上殺死這個程序(執行緒):

unix上,用root身份或是相應的oracle身份執行命令:

#kill -9 9846(9846 上一步查詢出的spid)

windows(unix也適用)用orakill殺死執行緒,orakill是oracle提供的乙個可執行命令 ,此命令需在命令視窗中執行。用法為:

orakill sid thread

ps:sid:表示要殺死的程序屬於的例項名

thread:是要殺掉的執行緒號,即第3步查詢出的spid。

exp:

c:>orakill orcl 9846

Oracle 鎖表 鎖表查詢 結束鎖表程序

1.oracle 鎖表 lock table 表名字in exclusive mode 所記錄 select from 表名字 for update 2.oracle 鎖表查詢 selectb.owner,b.object name,a.session id,a.locked mode from v...

二 oracle檢視鎖表程序

oracle 檢視鎖表程序,殺掉鎖表程序2008 10 22 16 01 檢視鎖表程序sql 語句1 itpub 個人空間 af e l 3kf i z select sess.sid,itpub 個人空間 n3 1u q sess.serial itpub 個人空間1sr z1 e g so x ...

Oracle 檢視 殺掉鎖表程序

檢視鎖表程序sql語句1 select sess.sid,sess.serial lo.oracle username,lo.os user name,ao.object name,lo.locked mode from v locked object lo,dba objects ao,v ses...