如何快速的殺掉Oracle的Session_第1頁
如何快速的殺掉Oracle的Session_第2頁
如何快速的殺掉Oracle的Session_第3頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一、問題的提出很多的時候我們迅速的殺掉 Oralcle 的一些 session,理由大體如下:1shutdown immediateshutdown immediateshutdown2alter systemkill session sid,serial#清除時,這些sessionkilled,這些就由Pmon3session二、處理方法其實處理方法很簡單,是被一些人稱為“謀殺”的一種方法。因為一個會對應著操作系統中相應的一個進程AltersystemsessionkillsessionPmon1、 以一個 session 做以示例,asession,bsessionspidc、 殺掉 sp

2、id 所標識的那個進程如果你的 Oracle 是在 Unix 平臺上的,可以用 kill。$kill 13824OraclewindownwindowntheadprocesssidspidOrakill,格式為:orakill sid spidC:orakill 941 13824d、 再查一下 v$session,看會話在不在了。2、 如何謀殺掉所有的 Oracle 的用戶的進程呢?a、windowsSQL,并把結果存成.batkill.bat,kill.batselect orakill |sid| |spid as thread from sys.v_$process p, sys.v

3、_$session swhere sid 6 and p.addr = s.paddr ;b、 Unix 的環境相對來說就簡單多了,執行如下的命令就可以了$ ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCAL=NO|awk print$2|xargs killshutdown immediate有一些死鎖進程,異常退出后用alter system kill session sid, serial#;無法釋放會話可從操作系統直接處理。-oracle查找并殺掉鎖表及對象的session相關系統進程 一、處理過程sid、serial#spid:select

4、 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 ands.paddr=p.addr;session:alter system kill session sid,serial#;-sidserial#為第一步查出來的數據sessionkill -9 spid;-spid 為第一步中查出來的系統進程號二、使

5、用了相關表的基本介紹V$LOCKED_OBJECTXIDUSN:回滾段號XIDSLOT: 槽 號 XIDSQN:序列號OBJECT_ID:被鎖對象 IDSESSION_ID: 持 有 鎖 的 sessionID ORACLE_USERNAME:持有鎖的 Oracle 用戶名OS_USER_NAME:持有鎖的操作系統 用戶名PROCESS: 操 作 系 統 進 程 號 LOCKED_MODE:鎖模式dba_objects(網上找的,懶得翻譯了_)OWNERUsername of the owner of the objectOBJECT_NAME名稱對象SUBOBJECT_NAME名稱的子對象(

6、例如, partititon)OBJECT_ID對象的對象數目DATA_OBJECT_ID對象數量的部分,其中載對象OBJECT_TYPE類型的對象產生的時間戳為創建對象LAST_DDL_TIME時間戳最后 DDL 變化(包括贈款和撤消)的目標時間戳狀態臨時產生二次這是一個中學創建的對象的一部分icreate域指標v$sessionV$SESSION 是基礎信息視圖,用于找尋用戶 SID 或 SADDR常用列:SID:SESSION 標識SIDsessionSESSIONSESSIONSID)。AUDSID:審查 session ID 唯一性,確認它通常也用于當尋找并行查詢模式USERNAME

7、:當前 session 在oracle 中的用戶名。STATUS:這列用來判斷 session 狀態是:AchtiveSQL(waitingfor/usingaresource) InactiveSQLv$processv$process 視圖包含當前系統 Oracle 運行的所有進程信息。常被用于將 Oracle 或服務進程的操IDsession常用列:ADDR:進程對象地址PID:oracle 進 程 ID SPID:操作系統進程 ID-v$session 深入學習 sessionsessionDBWR,LGWR,arcchiverV$SESSION 中的常用列V$SESSIONSIDSA

8、DDR。不過,它也有一些列會 動 態 的 變 化 , 可 用 于 檢 查 用 戶 。 如 例 : SQL_HASH_VALUE,SQL_ADDRESS:sessionSQLnull0,sessionSQLPREV_ADDRESSsessionSQL*Plus11整的數值。STATUS:這列用來判斷 session 狀態是:AchtiveSQL(waiting for/using a resource) InactiveSQLKilled:被標注為刪除sessioncombinationsession。Session 信息SID:SESSION 標識,常用于連接其它列SERIALSIDsessi

9、onSESSIONSESSIONSID)。AUDSID:審查 session ID 唯一性,確認它通常也用于當尋找并行查詢模式USERNAMEsessionoracleClient 信息sessionSQL*NetMACHINE:客戶端執行的機器TERMINAL:客戶端運行的終端PROCESS:客戶端進程的 IDPROGRAM:客戶端執行的客戶端程序要顯示用戶所連接PCTERMINALOSUSERPCORACLE.INIWindows中設置關鍵字 TERMINAL,USERNAME。Application 信息DBMS_APPLICATION_INFOCLIENT_INFO:DBMS_APPL

10、ICATION_INFO 中設置ACTION:DBMS_APPLICATION_INFO中設置MODULE:DBMS_APPLICATION_INFO下列 V$SESSION 列同樣可能會被用到:ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW#V$SESSION 中的連接列ColumnViewJoined Column(s)SIDV$SESSION_WAIT,V$SESSTAT,V$LOCK,V$SESSION_EVENT,V$OPEN_CURSORSID(SQL_HASH_VALUE, SQL_ADDRESS)V$SQLTE

11、XT, V$SQLAREA,V$SQL(HASH_VALUE, ADDRESS)(PREV_HASH_VALUE, PREV_SQL_ADDRESS) V$SQLTEXT, V$SQLAREA,V$SQL(HASH_VALUE, ADDRESS)TADDRV$TRANSACTIONADDRPADDRV$PROCESSADDR示例:sessionSELECT SID, OSUSER, USERNAME, MACHINE, PROCESSFROM V$SESSION WHERE audsid = userenv(SESSIONID);machinesessionSELECT SID, OSUSER, USERNAME, MACHINE, TERMINAL FROM V$SESSIONWHERE t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論