oracle資料中報錯 記錄被另乙個使用者鎖住

2021-06-09 18:15:51 字數 3008 閱讀 6366

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