檢視鎖定的session資訊指令碼
檢視當前被阻塞的物件和鎖資訊
SELECT DISTINCT
s1.inst_id BlockingInst,
s1.sid BlockingSid,
s1.serial# BlockingSerial,
s2.inst_id BlockedInst,
s2.sid BlockedSid,
s2.username BlockedUser,
s2.seconds_in_wait BlockedWaitTime
FROM gv$session s1,
gv$lock l1,
gv$session s2,
gv$lock l2
WHERE s1.inst_id = l1.inst_id and
l1.block in (1, 2) and
l2.request != 0 and
l1.sid = s1.sid and
l1.id1 = l2.id1 and
l1.id2 = l2.id2 and
s2.sid = l2.sid and
s2.inst_id = l2.inst_id
ORDER BY 1, 2, 3
檢視被鎖的回話資訊:
SELECT
s.blocking_session,
s.sid,
s.osuser,
s.seconds_in_wait,
s.event,
s.state,
t.sql_text,
o.object_name
FROM
v$session s, v$sqltext t, v$locked_object lo, dba_objects o
WHERE
blocking_session IS NOT NULL
and t.hash_value=s.sql_hash_value
and s.sid=lo.session_id
and lo.object_id=o.object_id
ORDER BY t.hash_value,t.PIECE;
以DBA角色, 檢視當前資料庫裡鎖的情況可以用如下SQL語句:
col owner for a12
col object_name for a16
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 t2.username,t2.sid,t2.serial#,t2.logon_time ,t1.object_id,t3.object_name,t1.locked_mode
from v$locked_object t1,v$session t2 ,dba_objects t3
where t1.session_id=t2.sid and t1.object_id=t3.object_id order by t2.logon_time
/
如果有長期出現的一列,可能是沒有釋放的鎖。我們可以用下面SQL語句殺掉長期沒有釋放非正常的鎖:
alter system kill session 'sid,serial#';
另外幾個可以查詢阻塞回話的檢視:
DBA_WAITERS
DBA_BLOCKERS
V$WAIT_CHAINS
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29135257/viewspace-2144873/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檢視過去的session鎖情況指令碼Session指令碼
- 透過shell指令碼檢視鎖資訊指令碼
- 通過shell指令碼檢視鎖資訊指令碼
- 檢視備份資訊指令碼指令碼
- 檢視鎖的資訊和alter system kill session的用法(小例子)Session
- 透過shell指令碼檢視procedure的資訊指令碼
- 透過shell指令碼檢視package的資訊指令碼Package
- 通過shell指令碼檢視procedure的資訊指令碼
- 通過shell指令碼檢視package的資訊指令碼Package
- 檢視錶的統計資訊SQL指令碼SQL指令碼
- mysql鎖以及鎖資訊檢視MySql
- Shell指令碼 – 檢視網路介面資訊指令碼
- 分享檢視統計資訊非常好的指令碼指令碼
- 檢視Oracle基礎配置資訊和效能相關資訊的指令碼Oracle指令碼
- 檢視oracle鎖相關資訊Oracle
- V$ACTIVE_SESSION_HISTORY 檢視中包含的資訊Session
- 檢視ORACLE中鎖定物件Oracle物件
- 檢視ORACLE AS 埠指令碼Oracle指令碼
- [20120307]檢視v$session檢視的定義.txtSession
- 表鎖定,kill sessionSession
- rman的備份檢視的指令碼指令碼
- 檢視歷史會話等待事件對應的session資訊會話事件Session
- 【資訊採集】IBM AIX系統硬體資訊檢視命令(shell指令碼)IBMAI指令碼
- oracle 中實體化檢視站點指令碼設定Oracle指令碼
- 用plsql提取批量提取檢視view定義的動態指令碼SQLView指令碼
- v$session 檢視Session
- 檢視引起阻塞的SessionSession
- 動態建立檢視指令碼指令碼
- 【管理】Oracle 常用的V$ 檢視指令碼Oracle指令碼
- 分享一個自動殺根鎖(抓住TX鎖不釋放的SESSION)的指令碼Session指令碼
- 檢視瀏覽器請求的session 瀏覽器怎麼檢視session瀏覽器Session
- 一個快速檢視trace的小指令碼指令碼
- 檢視空間使用情況的指令碼指令碼
- Linux檢視網路流量的指令碼Linux指令碼
- v$session/v$process檢視涉及的相關會話資訊的查詢Session會話
- 檢視長時間鎖定物件的程式,並kill掉物件
- oracle檢視被鎖的表和解鎖Oracle
- session指令碼監控Session指令碼