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$locked_object l, dba_objects b
where b.object_id=l.object_id
select lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_usernameuser_name,
o.owner,o.object_name,o.object_type,s.sid,s.serial#
from v$locked_object l,dba_objects o,v$session s
where l.object_id=o.object_id
and l.session_id=s.sid
order by o.object_id,xidusn desc
2、找出資料庫的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、殺死該session
alter system kill session 'sid,serial#'
用步驟2中查出來的記錄,對應進該語句刪除
就是這樣子,以下是我操作的方法:
第一步:(只是用於檢視哪些表被鎖住,真正有用的是第
二、第三步)
select b.owner,b.object_name,l.session_id,l.locked_mode
from v$locked_object l, dba_objects b
where b.object_id=l.object_id
後:owner
object_name
session_id locked_mode 1
bszcgl tdispose_accept_f
1115 32
bszcgl tdispose_accept_f
1097 33
bszcgl tdispose_accept_z
1116 34
bszcgl tdispose_accept_z
1111 35
bszcgl tdispose_accept_z
1103 36
bszcgl tdispose_accept_z
1100 37
bszcgl tdispose_accept_z
1097 38
bszcgl tdispose_accept_z
1092 39
bszcgl tdispose_damage_z
1106
310
bszcgl tzc6_22cl
1097 3
可以看出,那些表被鎖住
第二步:
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;
後: username sid serial# logon_time
1 bszcgl
1115
132
2011-12-6 14:51:35
2 bszcgl
1097
116
2011-12-6 14:51:57
3 bszcgl
1097
116
2011-12-6 14:51:57
4 bszcgl
1097
116
2011-12-614:51:57
5 bszcgl
1111
155
2011-12-6 14:56:29
6 bszcgl
1103
292
2011-12-6 14:57:34
7 bszcgl
1116
388
2011-12-6 15:04:56
8 bszcgl
1100
240
2011-12-6 15:08:13
9 bszcgl
1106
228
2011-12-6 15:26:20
10 bszcgl 1092
10 2011-12-6 15:26:46
第三步:(關鍵)
執行:(alter system kill session 'sid,serial#')具體如下:
alter system kill session '1115,132'
alter system kill session '1097,116'
alter system kill session '1111,155'
alter system kill session '1103,292'
alter system kill session '1116,388'
alter system kill session '1100,240'
alter system kill session '1106,228'
alter system kill session '1092,10'
執行成功,會提示執行完畢!
有可能執行完一條之後,其他的id也跟著消失,執行完3後,在執行2,檢查時候清除完畢
Oracle報錯》記錄被另外乙個使用者鎖定
當乙個使用者對資料進行修改時,若沒有進行提交或者回滾,oracle不允許其他使用者修改該條資料,在這種情況下修改,就會出現 記錄被另外乙個使用者鎖定 錯誤。查詢使用者 資料庫鎖 以及型別等 select object id,session id,locked mode from v locked o...
oracle 記錄被鎖定
select object id,session id,locked mode from v locked object select t2.username,t2.sid,t2.serial t2.logon time from v locked object t1,v session t2 wh...
oracle被鎖定的記錄解鎖
下面是我在開發中遇到的乙個問題,通過以下的方法很好的解決了,下面部分是我從別的網頁中摘下來的,以防自己忘記。oracal資料庫中的乙個表的一條記錄被鎖定,既不能修改也不能刪除 只看到沙漏,等乙個小時都是這樣 刪除表物件也不行,報錯 ora 00054 資源正忙,要求指定nowait 解決方法 1 當...