鎖表時KILL SESSION及回滾段監控(回滾時間評估)
在資料庫的日常維護中,經常出現以下兩種情況,需要DBA手工干預KILL SESSION :
DBA採用的kill session的方法:
1. 在資料庫層面 alter system kill session 'sid, serial#';
2. 在某些特殊情況下,方法1無法使用,便在OS層面執行kill -9
1. 應用hang住了,在資料庫裡查詢得知session被其它session block,要把其它session kill掉。
2. 應用跑到中途,突然決定不跑了,需要DBA把他們的session kill掉。
2. 應用跑到中途,突然決定不跑了,需要DBA把他們的session kill掉。
DBA採用的kill session的方法:
1. 在資料庫層面 alter system kill session 'sid, serial#';
2. 在某些特殊情況下,方法1無法使用,便在OS層面執行kill -9
例子: 執行某job未成功,查詢鎖表session及鎖定的object .
查詢鎖及SID, SERIAL# , OBJECT .
SELECT se.inst_id, lk.SID, se.serial#, se.username, se.OSUser, se.Machine,
DECODE (lk.TYPE,'TX', 'Transaction','TM', 'DML','UL', 'PL/SQL User Lock',lk.TYPE)
lock_type, DECODE (lk.lmode,0, 'None',1, 'Null',2,'Row-S (SS)',3, 'Row-X (SX)',4,'Share',5,'S/Row-X (SSX)',6,'Exclusive',TO_CHAR (lk.lmode))
mode_held, DECODE (lk.request,0, 'None',1, 'Null',2,'Row-S (SS)',3, 'Row-X (SX)',4,'Share',5,'S/Row-X (SSX)',6,'Exclusive',TO_CHAR (lk.request))
mode_requested, TO_CHAR (lk.id1) lock_id1, TO_CHAR (lk.id2) lock_id2, ob.owner, ob.object_type, ob.object_name,
DECODE (lk.Block, 0, 'No', 1, 'Yes', 2, 'Global') block, se.lockwait
FROM GV$lock lk, dba_objects ob, GV$session se
WHERE lk.TYPE IN ('TM', 'UL') AND lk.SID = se.SID AND lk.id1 = ob.object_id(+)
AND (lk.inst_id = se.inst_id)
DECODE (lk.TYPE,'TX', 'Transaction','TM', 'DML','UL', 'PL/SQL User Lock',lk.TYPE)
lock_type, DECODE (lk.lmode,0, 'None',1, 'Null',2,'Row-S (SS)',3, 'Row-X (SX)',4,'Share',5,'S/Row-X (SSX)',6,'Exclusive',TO_CHAR (lk.lmode))
mode_held, DECODE (lk.request,0, 'None',1, 'Null',2,'Row-S (SS)',3, 'Row-X (SX)',4,'Share',5,'S/Row-X (SSX)',6,'Exclusive',TO_CHAR (lk.request))
mode_requested, TO_CHAR (lk.id1) lock_id1, TO_CHAR (lk.id2) lock_id2, ob.owner, ob.object_type, ob.object_name,
DECODE (lk.Block, 0, 'No', 1, 'Yes', 2, 'Global') block, se.lockwait
FROM GV$lock lk, dba_objects ob, GV$session se
WHERE lk.TYPE IN ('TM', 'UL') AND lk.SID = se.SID AND lk.id1 = ob.object_id(+)
AND (lk.inst_id = se.inst_id)
檢視其中 OBJECT_NAME = TEMP_DOCUMENT_DLV_MSG_REF
SESSION ID = 2939
SERIAL# = 26036
SESSION ID = 2939
SERIAL# = 26036
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-748349/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle回滾段 undo 表空間Oracle
- 回滾操作、回滾段的理解
- ORACLE回滾段Oracle
- SQL code----檢視回滾段名稱及大小 回滾段的管理SQL
- ORACLE回滾段(1)Oracle
- ORACLE回滾段(2)Oracle
- ORACLE回滾段(轉)Oracle
- ORACLE回滾段管理Oracle
- Oracle查詢回滾大事務所需時間Oracle
- 臨時表空間和回滾表空間使用率查詢
- ORACLE 回滾段詳解Oracle
- Win10系統怎麼設定回滾時間 win10系統設定回滾時間的方法Win10
- zt_Oracle事務rollback回滾時間估算Oracle
- oracle 12c 新特性 Temporary UNDO 臨時回滾段Oracle
- Oracle的回滾段介紹Oracle
- Oracle - 回滾表空間 Undo 的整理Oracle
- 回滾段表空間資料檔案損壞解決方法
- Oracle基礎 03 回滾表空間 undoOracle
- ORACLE技術專題-- 回滾段Oracle
- 建立表空間、回滾段、使用者、表的詳細語法資訊
- oracle前滾和回滾Oracle
- ORACLE 前滾和回滾Oracle
- 建立表空間、回滾段、使用者、表的詳細語法資訊(轉)
- MySQL死鎖案例一(回滾導致死鎖)MySql
- 【UNDO】Oracle系統回滾段說明Oracle
- 調整系統用SYSTEM回滾段
- 回滾段完蛋了的處理
- oracle回滾溯源Oracle
- 回滾段擴充套件資料檔案套件
- oracle 11g 回滾段的測試Oracle
- 10g新特性——回滾監視
- 回滾段表空間損壞處理(ORA-01552)處理方法
- rollback_dist_lock.sh 回滾分散式鎖分散式
- v$session_longops 檢視回滾進度SessionGo
- 控制檔案 線上日誌 回滾表空間 筆記筆記
- Oracle 資料回滾Oracle
- Mac回滾iTunes版本Mac
- MONGODB 回滾失敗MongoDB