1、先來看看為什麼會出鎖住:
資料庫是乙個多使用者使用的共享資源。當多個使用者併發地訪問資料時,在資料庫中就會產生多個事務同時訪問同一資料的情況。若對併發操作不加控制就可能會讀取和儲存不正確的資料,破壞資料庫的一致性。
加鎖是實現資料庫併發控制的乙個非常重要的技術。當事務在對某個資料物件進行操作前,先向系統發出請求,對其加鎖。加鎖後事務就對該資料物件有了一定的控制,在該事務釋放鎖之前,其他的事務不能對此資料物件進行更新操作。
在資料庫中有兩種基本的鎖型別:排它鎖(exclusive locks,即x鎖)和共享鎖(share locks,即s鎖)。當資料物件被加上排它鎖時,其他的事務不能對它讀取和修改。加了共享鎖的資料物件可以被其他事務讀取,但不能修改。資料庫利用這兩種基本的鎖型別來對資料庫的事務進行併發控制。
2、解決方法:用管理員賬號登入資料庫,執行sql:
select object_name, machine, s.sid, s.serial#
from gv$locked_object l, dba_objects o, gv$session s
where l.object_id= o
.object_id
and l.session_id= s
.sid;
找到對應鎖住的表執行:
--釋放session sql:
--alter system kill session 'sid, serial#';
alter system kill session '23, 1647';
oracle 記錄被另乙個使用者鎖住
今天在oracle資料中刪除資料時提示 記錄被另乙個使用者鎖住 解決方法 1 檢視資料庫鎖,診斷鎖的 及型別 select object id,session id,locked mode from v locked object 或者用以下命令 select b.owner,b.object na...
oracle 記錄被另乙個使用者鎖住
今天在oracle資料中刪除資料時提示 記錄被另乙個使用者鎖住 解決方法 select object id,session id,locked mode from v locked object 或者用以下命令 select b.owner,b.object name,l.session id,l....
oracle 記錄被另乙個使用者鎖住
1 檢視資料庫鎖,診斷鎖的 及型別 select object id,session id,locked mode from v locked object 或者用以下命令 select b.owner,b.object name,l.session id,l.locked mode from v ...