oracle有以下幾種模式:
0:none
1:null 空
2:row-s 行共享(rs):共享表鎖,sub share
3:row-x 行獨佔(rx):用於行的修改,sub exclusive
4:share 共享鎖(s):阻止其他dml操作,share
5:s/row-x 共享行獨佔(srx):阻止其他事務操作,share/sub exclusive
6:exclusive 獨佔(x):獨立訪問使用,exclusive
鎖級別約高,影響的操作越多
(1)查詢鎖的sql語句
col owner for a12
col object_name for a16
select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a, dba_objects b
where b.object_id=a.object_id
(2)查詢鎖的sid,serial
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid
order by t2.logon_time;
(3)殺掉長期沒有釋放的鎖:
alter system kill session 'sid,serial#';
鎖模式圖:
檢視oracle資料庫鎖
方法一 檢視產生鎖的程序id 在資料庫伺服器上 主機 如應用伺服器 等等 select s.machine sourse host,p.spid pid,l.session id sid,s.serial l.locked mode,l.oracle username,s.user l.os use...
Oracle資料庫表被鎖
1 資料庫表被鎖的現象 在運算元據庫時,有的時候我們會很突然的遇到資料庫報下面這個錯誤 sql view plain copy ora 00054 resource busy andacquire with nowait specified 第乙個可能的原因是在lock table 和select ...
oracle資料庫 鎖表 解鎖
1 根據表名查詢鎖定的會話 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 ob...