--*oracle中檢視表是否被鎖 *
select /*+ rule*/ a.sid, b.owner, object_name, b.object_type from v$lock a, all_objects b where a.type = 'tm'
and a.id1 = b.object_id;
--查到的都是被鎖的表 ,這樣可以把它殺掉 替換&sid引數
select sid,serial# from v$session
where sid = &sid;
--根據上條語句查出的serial#替換下面兩個引數。
alter system kill session
'sid,serial#';
若發生ora-00031錯誤,需要直接從os系統清理占用資源的執行緒則:
select spid,osuser,s.program
from v$session s, v$process p
where s.paddr =p.addr and s.sid = '110'
--查詢占用資源的執行緒id等,110是session_id
1) 在unix上,用root身份或是相應的oracle身份執行命令:
#kill -9 12345(即第3步查詢出的spid)
2)在windows(unix也適用)用orakill殺死執行緒,orakill是oracle提供的乙個可執行命令,語法為:
orakill sid thread
其中:
sid:表示要殺死的程序屬於的例項名
thread:是要殺掉的執行緒號,即第3步查詢出的spid。
例:c:>orakill orcl 12345
oracle 表鎖死的解決方法
我們在運算元據庫 的 時候,有時候會由於操作不當引起資料庫表被鎖定,這麼我們經常不知所措,不知怎麼給這些表解鎖,在pl sql developer工具的的選單 tools 裡面的 sessions 可以查詢現在存在的會話,但是我們很難找到那個會話被鎖定了,想找到所以被鎖的 會話就更難了,下面這叫查詢...
Oracle表鎖死處理
查詢被鎖的表 select from v session where sid in select lockobj.session id from v locked object lockobj left join dba objects objs on lockobj.object id objs....
ORACLE解決鎖表問題
下面3個語句是我經常使用來解決oracle鎖問題的 注意你的使用者有沒有許可權問題 1.檢視被鎖的表 select p.spid,a.serial c.object name,b.session id,b.oracle username,b.os user name from v process p...