SESSION處於KILLED狀態下如何找出對應的程式
SQL> select 'alter system kill session '''||sid||','||SERIAL#||''';' from v$session where program like 'PlSqlDev.exe%';
'ALTERSYSTEMKILLSESSION'''||SID||','||SERIAL#||''';'
--------------------------------------------------------------------------------------------------------------
alter system kill session '12,14459';
alter system kill session '18,379';
alter system kill session '35,63717';
alter system kill session '43,37798';
alter system kill session '56,38333';
alter system kill session '106,59769';
alter system kill session '138,18817';
alter system kill session '163,64575';
alter system kill session '186,18270';
alter system kill session '219,43397';
alter system kill session '266,32098';
alter system kill session '267,64616';
alter system kill session '306,15258';
alter system kill session '309,21923';
--執行以上語句
--抽查其中一個會話的狀態
SQL> select * from v$session where sid=12;
SADDR SID SERIAL# AUDSID PADDR USER# USERNAME COMMAND
---------------- ---------- ---------- ---------- ---------------- ---------- ------------------------------ ----------
OWNERID TADDR LOCKWAIT STATUS SERVER SCHEMA# SCHEMANAME
---------- ---------------- ---------------- -------- --------- ---------- ------------------------------
OSUSER PROCESS MACHINE
------------------------------ ------------ ----------------------------------------------------------------
TERMINAL PROGRAM TYPE SQL_ADDRESS
------------------------------ ------------------------------------------------ ---------- ----------------
SQL_HASH_VALUE SQL_ID SQL_CHILD_NUMBER PREV_SQL_ADDR PREV_HASH_VALUE PREV_SQL_ID PREV_CHILD_NUMBER
-------------- ------------- ---------------- ---------------- --------------- ------------- -----------------
PLSQL_ENTRY_OBJECT_ID PLSQL_ENTRY_SUBPROGRAM_ID PLSQL_OBJECT_ID PLSQL_SUBPROGRAM_ID
--------------------- ------------------------- --------------- -------------------
MODULE MODULE_HASH ACTION ACTION_HASH
------------------------------------------------ ----------- -------------------------------- -----------
CLIENT_INFO FIXED_TABLE_SEQUENCE ROW_WAIT_OBJ# ROW_WAIT_FILE#
---------------------------------------------------------------- -------------------- ------------- --------------
ROW_WAIT_BLOCK# ROW_WAIT_ROW# LOGON_TIME LAST_CALL_ET PDM FAILOVER_TYPE FAILOVER_M FAI
--------------- ------------- ------------ ------------ --- ------------- ---------- ---
RESOURCE_CONSUMER_GROUP PDML_STA PDDL_STA PQ_STATU CURRENT_QUEUE_DURATION
-------------------------------- -------- -------- -------- ----------------------
CLIENT_IDENTIFIER BLOCKING_SE BLOCKING_INSTANCE BLOCKING_SESSION
---------------------------------------------------------------- ----------- ----------------- ----------------
SEQ# EVENT# EVENT
---------- ---------- ----------------------------------------------------------------
P1TEXT P1 P1RAW
---------------------------------------------------------------- ---------- ----------------
P2TEXT P2 P2RAW
---------------------------------------------------------------- ---------- ----------------
P3TEXT P3 P3RAW WAIT_CLASS_ID WAIT_CLASS#
---------------------------------------------------------------- ---------- ---------------- ------------- -----------
WAIT_CLASS WAIT_TIME SECONDS_IN_WAIT STATE
---------------------------------------------------------------- ---------- --------------- -------------------
SERVICE_NAME SQL_TRAC SQL_T SQL_T
---------------------------------------------------------------- -------- ----- -----
00000000FC523C28 12 14459 2217887 00000000FC50C798 40 ID5ZZ 0
2147483644 KILLED PSEUDO 40 ID5ZZ
liping 7380:6428 WORKGROUPGZT-120
GZT-120 PlSqlDev.exe USER 00
0 00000000D5331888 2674323898 bydf32qgqdwdu 1
PL/SQL Developer 1190136663 SQL Window - select * from query 3567217222
11937839 14097 6
380 0 16-APR-08 20262 NO NONE NONE NO
DISABLED ENABLED ENABLED 0
NO HOLDER
106 257 SQL*Net message from client
driver id 1413697536 0000000054435000
#bytes 1 0000000000000001
0 00 2723168908 6
Idle 0 20262 WAITING
SYS$USERS DISABLED FALSE FALSE
可以看到會話的狀態為killed,等了十分鐘,會話的狀態仍然沒有改變,該會話仍然在V$SESSION中,也就是仍然佔用的連線。此時可以考慮直接在作業系統上直接kill掉對應的程式。
但是由於ORACLE的bug,此時是沒有辦法直接關聯V$SESSION和V$PROCESS得到會話對應的SPID的:
Bug 5453737 WHEN A SESSION IS KILLED, PADDR CHANGES IN V$SESSION BUT ADDR NOT IN V$PROCESS
此時的解決辦法是:
SQL> select spid, program from v$process
2 where program!= 'PSEUDO'
3 and addr not in (select paddr from v$session)
4 and addr not in (select paddr from v$bgprocess);
SPID PROGRAM
------------ ------------------------------------------------
18180
18206
15851
15321
15327
19766
15095
15101
15109
15267
32742
15477
22059
22550
以上的查詢出來的SPID就是之前我們刪除的會話對應的SPID。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-1002729/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQLServer會話KILL不掉,一直處於KILLED/ROLLBACK狀態情形淺析SQLServer會話
- ORACLE中的KILLED SESSIONOracleSession
- Killed Session Are Not Cleaned By PMONSession
- 【Oracle】-【SNIPED和KILLED】-SPINED和KILLED的session清理流程OracleSession
- 在INDEX 處於UNABLE 狀態下插入資料Index
- 【Oracle】-【v$session】v$session的SNIPED狀態OracleSession
- GetStartupInfo檢測程式處於被除錯狀態除錯
- 透過CPU記憶體佔用情況,找出Oracle的session對應的program記憶體OracleSession
- CRM下載物件一直處於Wait狀態的原因物件AI
- 找出消耗CPU最高的程式對應的SQL語句SQL
- kill session V$SESSION標記為KILLED 的2種情況Session
- oracle 什麼時候才回收v$session 中status='KILLED'的程式OracleSession
- OGG的replicat程式的Time Since Chkpt一直增加,程式處於假死狀態
- 對於“前端狀態”相關問題,如何思考比較全面前端
- Java Hibernate 之 Session 狀態JavaSession
- oracle如何找出登入會話v$session的IP地址?Oracle會話Session
- 由於管理員的策略 ,該磁碟處於離線狀態
- 在RFT中如何等待瀏覽器處於Ready狀態?瀏覽器
- 爬蟲如何利用session方法保持登陸狀態(selenium)爬蟲Session
- session的狀態什麼時候是snipedSession
- [譯] Flutter 中的原生應用程式狀態Flutter
- Linux下Python程式Killed,分析其原因LinuxPython
- 什麼時候用有狀態session bean,什麼時候用無狀態session bean (轉)SessionBean
- 使用JDK自帶的jmap和jhat監控處於執行狀態的Java程式JDKJava
- 如何找出使用動態取樣的SQLSQL
- Swift下如何疊加UIButton狀態SwiftUI
- MTS方式連線V$SESSION中的SERVER狀態SessionServer
- 使用 Provider 管理 Flutter 應用狀態 (下)IDEFlutter
- 如何檢測 SAP 電商雲 Spartacus UI 當前正處於導航狀態UI
- ASP.NET Core 應用程式狀態ASP.NET
- 關於iOS 狀態列、導航欄的幾處筆記iOS筆記
- Hbase 之 某Region長期處於 RIT 狀態 ( 空洞 )
- MogDB備機處於standby need-repair(WAL)狀態AI
- Windows10系統小娜總是處於離線狀態如何解決Windows
- 5種狀況下的HTTP狀態碼HTTP
- 程式的建立和程式的狀態
- 程式的3種狀態
- State Processor API:如何讀取,寫入和修改 Flink 應用程式的狀態API