Oracle鎖表查詢和解鎖

2022-05-27 04:33:08 字數 2113 閱讀 3122

1.以下為相關表

v$lock、v$sqlarea、v$session、v$process、v$locked_object、all_objects、v$session_wait.

2.通過管理查詢被鎖表的相關資訊

select b.sql_id,b.username,b.sid,b.serial#,c.object_name

,b.osuser,b.machine,b.program,b.logon_time,b.command,b.lockwait,b.saddr,b.paddr,b.taddr,b.sql_address,a.locked_mode

from v$locked_object a, v$session b, dba_objects c where a.session_id = b.sid and a.object_id

= c.object_id

order

by b.logon_time;

通過語句可以發現用到了上面所給出的相關表

v$locked_object、v$session、dba_objects

3.查詢出是那條sql語句導致了鎖表

select

*from v$session t1, v$locked_object t2 where t1.sid =

t2.session_id;

或select

*from v$sql where hash_value in (select sql_hash_value from v$session where sid in (select session_id from v$locked_object));

4.通過sql_id查詢是執行這條sql語句的機器名

select username,status,schemaname,osuser,machine,module,action,logon_time,event from v$session where schemaname<>'sys' and machine in ( 

select machine from v$active_session_history where sql_id in (select sql_id from v$sql where sql_text like '%update%'));

select b.sql_id,username,status,schemaname,osuser,a.machine,module,action,logon_time,event from v$session a left

join

( select sql_id,machine from v$active_session_history where sql_id in (select sql_id from v$sql where sql_text like

'%update%

') ) b on

a.machine

=b.machine where schemaname<>

'sys

'

5.通過擁有dba許可權的使用者解除資料庫中鎖住的表(需要用到sid和serial),執行下面的與語句即可解鎖:

alter system kill session '

sid,serial#

';

6.查詢某session正在執行的語句,從而可以快速定位一直進行的事物

select

/*+ ordered

*/ sql_text from v$sqltext a where (a.hash_value, a.address) in (select decode(sql_hash_value, 0

, prev_hash_value, sql_hash_value),

decode(sql_hash_value, 0, prev_sql_addr, sql_address) from v$session b where b.sid =

'143

') /*

此處143 為sid

*/order

by piece asc;

oracle 鎖表查詢 和 解鎖

查詢誰鎖定,誰等待 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...

Oracle鎖表查詢和解鎖方法

我們這裡一般用的pl sql,總是無意間把錶鎖住,所以我今天就整理了一下簡單的解鎖和查詢鎖表的方法 一 首先pl sql要以管理員的賬號 system admin等 登入,管理員的賬號和密碼根據個人設定而來,連線為一般選擇normal,也可選擇sysdba 以下幾個為相關表 select fromv...

Oracle鎖表查詢和解鎖方法

本文 我們這裡一般用的pl sql,總是無意間把錶鎖住,所以我今天就整理了一下簡單的解鎖和查詢鎖表的方法 一 首先pl sql要以管理員的賬號 system admin等 登入,管理員的賬號和密碼根據個人設定而來,連線為一般選擇normal,也可選擇sysdba 以下幾個為相關表 select fr...