一些誤操作可能會造成資料被鎖,可以嘗試用下邊的指令碼來解鎖
指令碼可行,已經試用多次
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...