查看鎖表進(jìn)程SQL語(yǔ)句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$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid;
查看鎖表進(jìn)程SQL語(yǔ)句2:
select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;
殺掉鎖表進(jìn)程:
如有記錄則表示有l(wèi)ock墩莫,記錄下SID和serial# ,將記錄的ID替換下面的738,1429,即可解除LOCK
alter system kill session '738,1429';
【注】以上兩步,可以通過(guò)Oracle的管理控制臺(tái)來(lái)執(zhí)行。
3.如果利用上面的命令殺死一個(gè)進(jìn)程后劫笙,進(jìn)程狀態(tài)被置為"killed",但是鎖定的資源很長(zhǎng)時(shí)間沒(méi)有被釋放星岗,那么可以在os一級(jí)再殺死相應(yīng)的進(jìn)程(線程)填大,首先執(zhí)行下面的語(yǔ)句獲得進(jìn)程(線程)號(hào):
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=24 (24是上面的sid)
4.在OS上殺死這個(gè)進(jìn)程(線程):
1)在unix上,用root身份執(zhí)行命令:
kill -9 12345(即第3步查詢出的spid)
2)在windows(unix也適用)用orakill殺死線程俏橘,orakill是oracle提供的一個(gè)可執(zhí)行命令允华,語(yǔ)法為:
orakill sid thread
其中:
sid:表示要?dú)⑺赖倪M(jìn)程屬于的實(shí)例名
thread:是要?dú)⒌舻木€程號(hào),即第3步查詢出的spid寥掐。
例:
c:>orakill orcl 12345