更新oracle資料時遇到鎖死情況的處理
我們在運算元據庫的 時候,有時候會由於操作不當引起資料庫表被鎖定,這麼我們經常不知所措,不知怎麼給這些表解鎖,在pl/sql developer工具的的選單「tools」裡面的「sessions」可以查詢現在存在的會話,但是我們很難找到那個會話被鎖定了,想找到所以被鎖的 會話就更難了。
下面是我自己通過網上的資料結合現場環境嘗試過有效的殺程序解鎖的過程,比較簡單,容易操作:
檢視被鎖的表:
select p.spid,
c.object_name,
b.session_id,
a.serial#,
b.oracle_username,
b.os_user_name
from v$process p, v$session a, v$locked_object b, all_objects c
where p.addr = a.paddr
and a.process = b.process
and c.object_id = b.object_id;
將查詢出來的session_id,serial#,記錄下來使用如下語句進行解鎖
解鎖:alter system kill session'b.session_id,a.serial#';
如果解鎖不成功可以嘗試在作業系統層面進行程序結束(威力很大,慎用)
[windows] ntsd -c q -pp.spid
[linux] ps -ef|grepp.spid
在linux中殺系統程序的時候先試試直接kill,有些時候無效的情況嘗試kill -9 spid
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表鎖死
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 查到的都是被鎖的表 這樣可以把它殺...
oracle 表鎖死的解決方法
我們在運算元據庫 的 時候,有時候會由於操作不當引起資料庫表被鎖定,這麼我們經常不知所措,不知怎麼給這些表解鎖,在pl sql developer工具的的選單 tools 裡面的 sessions 可以查詢現在存在的會話,但是我們很難找到那個會話被鎖定了,想找到所以被鎖的 會話就更難了,下面這叫查詢...