以下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...