給鎖住的行解鎖(oracle)

2021-09-12 14:22:05 字數 2136 閱讀 3453

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_username user_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#';

alter system kill session '23, 1647'; 

用步驟2中查出來的記錄,對應進該語句刪除

-- 誰鎖了表 哪台機器鎖了表

select l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#,

l.os_user_name,s.machine, s.terminal,a.sql_text, a.action

from v$sqlarea a,v$session s, v$locked_object l

where l.session_id = s.sid

and s.prev_sql_addr = a.address

order by sid, s.serial#;

-- 所有鎖住的表 和 被那個程式鎖的表 

select /*+ rule */ s.username,

decode(l.type,'tm','table lock',

'tx','row lock',

null) lock_level,

o.owner,o.object_name,o.object_type,

s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser

from v$session s,v$lock l,dba_objects o

where l.sid = s.sid

and l.id1 = o.object_id(+)

and s.username is not null;

-- 詢到誰鎖了表,而誰在等待。

select /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username user_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;

-- 要執行的解鎖語句 

select distinct 'alter system kill session ''' || s.sid || ',' ||s.serial# || '''' || ';'

from v$locked_object l, all_objects o, v$session s

where l.object_id = o.object_id

and l.session_id = s.sid;

給鎖住的行解鎖(oracle)

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

oracle表鎖住 解鎖辦法

第一種方法 用系統賬戶如sys as sysdba 登入進去 1 檢視資料庫鎖,診斷鎖的 及型別 select object id,session id,locked mode from v locked object 或者用以下命令 select b.owner,b.object name,l.s...

Oracle給使用者解鎖的方法

紹oracle給使用者解鎖的方法,希望那個通過括在oracle中新增使用者 賦權 修改密碼 解鎖實現oracle給使用者解鎖。本文能給大家有所幫助。新增使用者 隨著使用者的建立,自動產生與使用者同名的schema create user tester profile default identifi...