oracle查詢並殺掉鎖表及物件的session及相關係統程式
一、處理過程
1.透過查詢出已被鎖定的資料庫表及相關的sid、serial#及spid:
select object_name as 物件名稱,s.sid,s.serial#,p.spid as 系統程式號
from v$locked_object l , dba_objects o , v$session s , v$process p
where l.object_id=o.object_id and l.session_id=s.sid and s.paddr=p.addr;
2.在資料庫中滅掉相關session:
alter system kill session 'sid,serial#';
--sid及serial#為第一步查出來的資料
3.從系統中滅掉與該session對應的程式:
kill -9 spid;
--spid為第一步中查出來的系統程式號
經過以上操作之後重新對之前鎖定的物件進行操作應該就可以了。
二、使用了相關表的基本介紹
- V$LOCKED_OBJECT中的列說明:
XIDUSN:回滾段號
XIDSLOT:槽號
XIDSQN:序列號
OBJECT_ID:被鎖物件ID
SESSION_ID:持有鎖的sessionID
ORACLE_USERNAME:持有鎖的Oracle 使用者名稱
OS_USER_NAME:持有鎖的作業系統 使用者名稱
PROCESS:作業系統程式號
LOCKED_MODE:鎖模式 - dba_objects的列說明(網上找的,懶得翻譯了^_^)
OWNER
Username of the owner of the object
OBJECT_NAME
Name of the object
SUBOBJECT_NAME
Name of the sub-object (for example,partititon)
OBJECT_ID
Object number of the object
DATA_OBJECT_ID
Object number of the segment which contains the object
OBJECT_TYPE
Type of the object
CREATED
Timestamp for the creation of the object
LAST_DDL_TIME
Timestamp for the last DDL change (including GRANT and REVOKE) to the object
TIMESTAMP
Timestamp for the specification of the object
STATUS
Status of the object
TEMPORARY
Can the current session only see data that it place in this object itself?
GENERATED
Was the name of this object system generated?
SECONDARY
Is this a secondary object created as part of icreate for domain indexes? - v$session的說明
V$SESSION是基礎資訊檢視,用於找尋使用者SID或SADDR
常用列:
SID:SESSION標識
SERIAL#:如果某個SID又被其它的session使用的話則此數值自增加(當一個SESSION結束,另一個SESSION開始並使用了同一個SID)。
AUDSID:審查session ID唯一性,確認它通常也用於當尋找並行查詢模式
USERNAME:當前session在oracle中的使用者名稱。
STATUS:這列用來判斷session狀態是:
Achtive:正執行SQL語句(waiting for/using a resource)
Inactive:等待操作(即等待需要執行的SQL語句)
Killed:被標註為刪除 - v$process檢視
v$process檢視包含當前系統Oracle執行的所有程式資訊。常被用於將Oracle或服務程式的作業系統程式ID與資料庫session之間建立聯絡。
常用列:
ADDR:程式物件地址
PID:oracle程式ID
SPID:作業系統程式ID
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/196700/viewspace-754298/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 殺會話之查詢鎖表的物件及相關操作會話物件
- oracle 中查詢被鎖的物件,並殺死死鎖程式的方法Oracle物件
- 關於oracle資料庫內部殺掉程式及session檢視的測試Oracle資料庫Session
- 鎖表的相關資訊查詢
- 快速殺掉Oracle的SessionOracleSession
- ORACLE 鎖表的解決方法及查詢引起鎖表SQL語句[轉]OracleSQL
- ORACLE 鎖表的解決方法及查詢引起鎖表SQL語句方法OracleSQL
- 查詢資料庫物件所屬的filegroup及相關SQL資料庫物件SQL
- Oracle死鎖查詢及處理Oracle
- Oracle 查詢鎖之間的依賴關係Oracle
- oracle 查詢殺死死鎖方案Oracle
- 殺掉鎖死的程式
- [鎖機制] 鎖相關查詢
- MySQL 查詢鎖之間依賴關係的資訊和最源頭鎖的thread_id號及關係MySqlthread
- MySQL查詢鎖之間依賴關係的資訊和最源頭鎖的thread_id號及關係MySqlthread
- 解讀數倉中的資料物件及相關關係物件
- linux下查詢程式及終止程式操作的相關命令Linux
- oracle殺死鎖表的程式Oracle
- 表死鎖查詢及處理辦法
- Oracle查詢表的外來鍵引用關係Oracle
- Oracle 表空間查詢相關sqlOracleSQL
- 查詢並解除oracle的死鎖Oracle
- sql 開發篇一 之 表鎖查詢及解鎖SQL
- ORACLE查詢表之間的主外來鍵關係Oracle
- Oracle 查詢表與表之間的 主外來鍵關係Oracle
- 物件及函式相關物件函式
- 【sqlserver】殺掉所有死鎖程式SQLServer
- 查詢當前執行的sql及相關內容SQL
- oracle表查詢的並行度Oracle並行
- 效能查詢並殺CPU高耗程式
- 表空間相關查詢
- 檢視長時間鎖定物件的程式,並kill掉物件
- 查詢並刪除Oracle中等待的鎖Oracle
- 查詢基表的相關檢視
- 如何殺掉Teradata的sessionSession
- oracle 雜湊查詢與巢狀查詢跟表的先後關係測試Oracle巢狀
- Oracle 查詢鎖之間依賴關係的最源頭SIDOracle
- 查詢session被鎖的sql(轉)SessionSQL