Oracle資料庫 記錄被另乙個使用者鎖住 解決方法

2021-08-17 10:38:15 字數 820 閱讀 7010

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