如何解資料庫鎖

2021-08-26 19:36:14 字數 1589 閱讀 1156

一些誤操作可能會造成資料被鎖,可以嘗試用下邊的指令碼來解鎖

指令碼可行,已經試用多次

column sid         format 9999999 heading "sess|id "

column serial# format 9999999 heading "serial# "

column object_name format a17 heading "obj name or|trans_id" trunc

column osuser format a10 heading "op sys|user id"

column username format a8

select

b.sid,

c.serial#,

c.username,

c.osuser,

decode(b.id2, 0, a.object_name,'trans-'||to_char(b.id1)) object_name,

b.type,

decode(b.lmode,0,'--waiting--',

1,'null',

2,'row share',

3,'row excl',

4,'share',

5,'sha row exc',

6,'exclusive',

'other') "lock mode",

decode(b.request,0,' ',

1,'null',

2,'row share',

3,'row excl',

4,'share',

5,'sha row exc',

6,'exclusive',

'other') "req mode"

from dba_objects a, v$lock b, v$session c

where a.object_id = b.id1

and b.sid = c.sid

and c.username is not null

and a.object_name like upper('inv_rcv_std_rcpt_apis') --可能被鎖的表名

/

--3.

oracle 解鎖

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;

--檢視鎖

--alter system kill session 'sid,serial#';

--把鎖給kill掉

--146為sid,21177為serial#

alter system kill session '146,21177';

還有一種簡單方法:

如果你在試用toad,可以直接切換到「toad session browser」,找到可疑的鎖,直接解鎖

如何解資料庫鎖

一些誤操作可能會造成資料被鎖,可以嘗試用下邊的指令碼來解鎖 指令碼可行,已經試用多次 column sid format 9999999 heading sess id column serial format 9999999 heading serial column object name fo...

深入理解資料庫鎖

oracle中分為兩種模式的鎖,一種是排他鎖 x鎖 另一種是共享所 s鎖 鎖是實現併發的主要手段,在資料庫中應用頻繁,但很多都由資料庫自動管理,當事務提交後會自動釋放鎖.oracle為了使資料庫實現高度併發訪問,它使用了不同型別的鎖來管理併發會話對資料物件的操作.oracle的鎖按作用物件不同分為如...

Oracle資料庫被鎖表後,如何解決!

今天本來要修改測試庫程式版本的,發現被卡住了。一直無法完成,後來發現是表被鎖死了。然後通過網上們帖子的幫助,成功的解決了問題。這裡記錄一下 1.首先檢視當前資料庫中,哪些表被鎖住了,找到對應的session id 執行此語句 select b.owner,b.object name,a.sessio...