ORACLE 鎖表的解決方法 ORA 00054

2022-09-12 04:48:13 字數 1045 閱讀 5461

oracle 鎖表的解決方法及查詢引起鎖表sql語句方法

ora-00054: 資源正忙, 但指定以 nowait 方式獲取資源, 或者超時失效。

看來有鎖定該錶的會話,於是,執行如下查詢;

1. oracle中檢視當前系統中鎖表情況

select * from v$locked_object

可以通過查詢v$locked_object拿到sid和objectid,然後用sid和v$session鍊錶查詢是**鎖的表,用v$session中的objectid欄位和dba_objects的id欄位關聯,查詢詳細的鎖表情況。

2、-- 檢視被鎖的表,使用者,程序sid,serial#

select c.sid,c.serial#,c.osuser,b.owner,b.object_name,a.session_id,a.locked_mode from

v$locked_object a,dba_objects b,v$session c where b.object_id = a.object_id

and c.sid = a.session_id;

3、查詢是什麼sql引起了鎖表的原因,sql如下:

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#;

4、-- 殺掉程序 sid,serial#

alter system kill session'136,1397';

Oracle表被鎖解決方法

最近在工作中遇到了oracle資料庫表被鎖的情況,導致無法對錶進行修改,再這裡給大家分享一下解決方法,避免大家從踩坑 1 查詢鎖的session id mysql select session id from v locked object 例 3334 2 根據session id查詢鎖的會話資訊...

oracle之鎖表的解決方法

首先,查處鎖定表的session 的sid,serial os user name,machine name,terminal 和執行的語句 select l.session id sid,s.serial l.locked mode,l.oracle username,s.user l.os us...

oracle 表鎖死的解決方法

我們在運算元據庫 的 時候,有時候會由於操作不當引起資料庫表被鎖定,這麼我們經常不知所措,不知怎麼給這些表解鎖,在pl sql developer工具的的選單 tools 裡面的 sessions 可以查詢現在存在的會話,但是我們很難找到那個會話被鎖定了,想找到所以被鎖的 會話就更難了,下面這叫查詢...