oracle中表記錄被另一個用戶鎖住


 

 

應用場景

在查詢oracle表時,提示表記錄被另一個用戶鎖住了

有可能是在使用了pl/sql工具后修改某個表記錄時,加鎖,或者發生故障異常退出,下次登錄進去修改不了

 

查詢鎖

--查看數據庫的鎖的來源、類型等
select t.object_id, t.session_id, t.locked_mode from v$locked_object ;

 

查詢鎖與session連接

--查詢 鎖與session連接 用戶名、serial#、時間
select
s.username, s.sid, s.serial#, s.logon_time
from v$locked_object o, v$session s
where o.session_id = s.sid
order by s.logon_time ;

查詢數據庫 鎖的session 的sid、serial# 殺死此次連接session

 

殺死連接session

-- 找到鎖的連接 session 的sid、serial# 用於殺死session連接
alter system kill session 'sid,serial#' ;

-- 列如 sid=642 serial#=10439
alter system kill session '642,10439' ;

 

 

本人是由於使用了 select * from tableName for update ,后進行修改,然后pl/sql 就異常退出了

下次登錄進去后,發現無法修改,報錯提示:表記錄被另一個用戶鎖住

用此方法可以實現解鎖,本人親測有效

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM