Oracle-11g-R2

如何確定Oracle表是否被鎖定?

  • January 2, 2021

我們一直在使用安裝在 Oracle Enterprise 11gR2 上的 BI 軟體和儲存庫數據庫。

其中一些批處理報告將嘗試訪問可能仍被鎖定的數據庫表。如何確定 Oracle 表是否被鎖定?是否有任何 SQL 語句顯示類似歷史詳細資訊以供分析?

以下查詢提供了所有鎖的詳細資訊。

SELECT B.Owner, B.Object_Name, A.Oracle_Username, A.OS_User_Name  
FROM V$Locked_Object A, All_Objects B
WHERE A.Object_ID = B.Object_ID

以下腳本可用於快速辨識 Oracle 系統中的所有鎖定對象。

select
  c.owner,
  c.object_name,
  c.object_type,
  b.sid,
  b.serial#,
  b.status,
  b.osuser,
  b.machine
from
  v$locked_object a ,
  v$session b,
  dba_objects c
where
  b.sid = a.session_id
and
  a.object_id = c.object_id;

參考:-Burleson Consulting 的 Oracle Tips http://www.dba-oracle.com/t_find_oracle_locked_objects.htm

引用自:https://dba.stackexchange.com/questions/56615