關於v$process與v$session中process的理解
說明
v$session有個process欄位,V$PROCESS有個SPID欄位,這兩個欄位是不是一個意思呢?是不是都代表會話的作業系統程式呢?
官方文件上的解釋:
SPID VARCHAR2(12) Operating system process identifier
PROCESS VARCHAR2(9) Operating system client process ID
本文以資料庫伺服器安裝在unix上為例進行說明。
V$PROCESS中的SPID表示的是作業系統的程式,v$session中的process表示客戶端程式ID,即客戶端程式在客戶端機器上的程式ID號。一個表示客戶端程式在客戶端機器上的程式號,一個表示伺服器程式在伺服器上的程式號。
連線伺服器的會話,發起會話的客戶端程式可能是unix程式,也可能是windows程式。
-------------------
windows客戶端程式
-------------------
例如,使用windows程式連線unix上的資料庫,對應會話sid=35,對應客戶端windows的988:5412
格式為"客戶端PID:執行緒ID"。如"988:5412",
表明連線到資料庫的客戶端程式在客戶計算機上的程式ID是 988 ,該程式內的5412號執行緒執行了資料庫的連線。
set linesize 200
col machine format a30
col program format a50
col status format a10
col username format a10
select machine,program,username,status from v$session where sid=&oracle_sid;
Enter value for oracle_sid: 35
old 1: select machine,program,username,status,process from v$session where sid=&oracle_sid
new 1: select machine,program,username,status,process from v$session where sid=35
MACHINE PROGRAM USERNAME STATUS PROCESS
------------------------------ ---------------- ---------- ---------- ------------
WORKGROUP\HXC plsqldev.exe SYS INACTIVE 988:5412
sid=35對應的unix資料庫伺服器上的伺服器程式為 16805
SQL> select spid os_sid
2 from v$process
3 where addr = (select paddr from v$session where sid = &oracle_sid);
Enter value for oracle_sid: 35
old 3: where addr = (select paddr from v$session where sid = &oracle_sid)
new 3: where addr = (select paddr from v$session where sid = 35)
OS_SID
------------
16805
[monitor:/]#ps -ef|grep 16805
root 17278 17174 0 14:27:23 pts/tA 0:00 grep 16805
oracle 16805 1 0 14:22:56 ? 0:00 oraclerobin (LOCAL=NO)
[monitor:/]#
-------------------
Unix客戶端程式
-------------------
再來看看unix客戶端連線到unix伺服器端的例項
連線伺服器的會話sid=260
對應的客戶端程式號為 26349
SQL> set linesize 200
SQL> col machine format a30
SQL> col program format a50
SQL> col status format a10
SQL> col username format a10
SQL>
SQL> select machine,program,username,status,process from v$session where sid=&oracle_sid;
Enter value for oracle_sid: 260
old 1: select machine,program,username,status,process from v$session where sid=&oracle_sid
new 1: select machine,program,username,status,process from v$session where sid=260
MACHINE PROGRAM USERNAME STATUS PROCESS
--------- ------------------------------------ ---------- ---------- ------------
zhzw01 (TNS V1-V3) BILL_GATHE ACTIVER 26349
對應的伺服器程式號為 13472
SQL> select spid os_sid
2 from v$process
3 where addr = (select paddr from v$session where sid = &oracle_sid);
Enter value for oracle_sid: 260
old 3: where addr = (select paddr from v$session where sid = &oracle_sid)
new 3: where addr = (select paddr from v$session where sid = 260)
OS_SID
------------
13472
hnzzzw01:/arraybill/home/oracle$ ps -ef|grep 13472
orabill 25649 25452 0 14:22:56 pts/ta 0:00 grep 13472
orabill 13472 1 255 10月 3 ? 30969:04 oraclehnbill (LOCAL=NO)
hnzzzw01:/arraybill/home/oracle$
-------------------
說明
-------------------
如果是透過sid,查詢到程式spid,使用作業系統命令直接殺掉程式
kill -9 spid
注意,是 spid,而不是v$session中對應的客戶端的process,別殺錯了程式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28282660/viewspace-1744520/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- v$session.PROCESS/V$process.SPID含義Session
- v$process和v$session中欄位解釋Session
- V$SESSION中的saddr,paddr,taddr 與v$process及v$transaction中欄位的關係Session
- v$session/v$process檢視涉及的相關會話資訊的查詢Session會話
- A discussion of Dead Connection Detection, Resource Limits, V$SESSION, V$PROCESS and OS processesMITSession
- Oracle 動態效能表 v$session & v$process各個欄位的說明OracleSession
- 【檢視】V$BGPROCESS與V$PROCESS間的區別與聯絡
- oracle session和process的關係OracleSession
- WebSphere Process Server V6.1WebServer
- oracle中session跟process的研究OracleSession
- 使用者/伺服器程式概念及v$session/V$PROCESS檢視簡介伺服器Session
- [20171102]檢視v$session中process欄位含義Session
- session,connect,processSession
- ORACLE SESSION 和 PROCESSOracleSession
- process和session的總結Session
- oracle session和process的關係 .轉自CSDNOracleSession
- Oracle中的Connect、session、process的區別OracleSession
- connection session process的聯絡與區別Session
- 學習動態效能表(七)--V$PROCESS
- 在Oracle中session和process的區別(轉)OracleSession
- WebSphere Process Server V7 中的併發人工任務分配WebServer
- 關於oracle裡的process總結Oracle
- 修改Oracle process 和 session 的方法--摘OracleSession
- (轉):學習Oracle動態效能表-(12)-V$PROCESSOracle
- v$session中的serverSessionServer
- 【SESSION】v$session and v$license 中sessions_current 的區別Session
- v$session中LAST_CALL_ET引數的理解SessionAST
- 關於v$session中的taddr列(事務物件地址)Session物件
- Process與Socket,Select與Accept關係
- 理解V$OPEN_CURSOR, V$SESSION_CACHED_CURSORSession
- (轉)Oracle動態效能檢視學習之v$processOracle
- 關於v$session_wait 表的運用SessionAI
- 在 WebSphere Process Server V7.0 中使用儲存與轉發特性(一)WebServer
- [Shell] Linux monitor OS process and DB sessionLinuxSession
- [zt] 理解V$OPEN_CURSOR, V$SESSION_CACHED_CURSORSession
- oracle中修改processOracle
- process/session/connection的一些問題Session
- 【Oracle】-【v$session】v$session的SNIPED狀態OracleSession