解決oracle表鎖死

2021-07-31 23:47:41 字數 902 閱讀 7446

--*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...