編譯儲存過程時被卡死的處理方法
同事修改儲存過程trans_kc21時過程無法被編譯被卡死
查V$DB_OBJECT_CACHE
SQL> SELECT * FROM V$DB_OBJECT_CACHE WHERE name=upper('trans_kc21') AND LOCKS!='0';OWNER NAME DB_LINK NAMESPACE TYPE SHARABLE_MEM LOADS EXECUTIONS LOCKS PINS KEPT CHILD_LATCH INVALIDATIONS HASH_VALUE LOCK_MODE PIN_MODE STATUS TIMESTAMP PREVIOUS_TIMESTAMP LOCKED_TOTAL PINNED_TOTAL PROPERTY FULL_HASH_VALUE---------------------------------------------------------------- -------------------------------------------------------------------------------- ---------------------------------------------------------------- ---------------------------------------------------------------- ---------------------------------------------------------------- ------------ ---------- ---------- ---------- ---------- ---- ----------- ------------- ---------- --------- --------- ------------------- -------------------------------------- -------------------------------------- ------------ ------------ -------------------------------------------------------------------------------- --------------------------------SICP3_GZYB TRANS_KC21 TABLE/PROCEDURE PROCEDURE 341712 34 1 1 1 NO 15307 0 1839741899 NULL SHARED VALID 2013-09-26/15:48:21 2013-09-26/15:46:17 47 68 356a3b5c43dd126d3e52acbe6da83bcb
發現locks=1
按物件查出sid的值
v$access顯示目前庫快取物件被鎖定的資訊,這個被強加的鎖用來確保庫快取物件在sql執行請求它時不會被老化
SQL> select SID from V$ACCESS WHERE bject=upper('trans_kc21'); SID---------- 6566檢視session 狀態SQL> select a.SID,a.SERIAL#,b.SPID from v$session a,v$process b where a.SID=6566 and a.PADDR=b.ADDR; SID SERIAL# SPID---------- ---------- ------------------------ 6566 27 23462626
kill這個會話
alter system kill session '6566,27'
如果這個會話已經是被kill的
SQL> select a.SID,a.SERIAL#,b.SPID,a.STATUS from v$session a,v$process b where a.SID=6566 and a.PADDR=b.ADDR; SID SERIAL# SPID STATUS---------- ---------- ------------------------ --------
6566 27 23462626 KILLED
就要在作業系統層來kill
[/@zzld03]#kill -9 23462626
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-773435/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle儲存過程編譯卡死的解決方法Oracle儲存過程編譯
- Oracle 編譯儲存過程卡死解決方法Oracle編譯儲存過程
- MySQL儲存過程的異常處理方法MySql儲存過程
- GCC編譯過程(預處理->編譯->彙編->連結)GC編譯
- 實時流處理與分散式儲存過程中對檔案的操作分散式儲存過程
- [MySQL光速入門]017 儲存過程中的"異常處理"MySql儲存過程
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- SQL SERVER 臨時表導致儲存過程重編譯(recompile)的一些探討SQLServer儲存過程編譯Compile
- oracle的儲存過程Oracle儲存過程
- AndroidKiller反編譯失敗的處理方法Android編譯
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- 編譯過程編譯
- Linux伺服器被入侵後的處理過程Linux伺服器
- 儲存過程與儲存函式儲存過程儲存函式
- SQLSERVER儲存過程SQLServer儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- unidac儲存過程儲存過程
- firedac儲存過程儲存過程
- Oracle儲存過程Oracle儲存過程
- JavaWeb——JDBC八股文、JSBC使用儲存過程、儲存函式、處理CLOB/BLOB型別JavaWebJDBCJS儲存過程儲存函式型別
- Sqlserver中的儲存過程SQLServer儲存過程
- Mysql 儲存過程的使用MySql儲存過程
- 儲存過程效能低的解決方法之一儲存過程
- JdbcTemplate調儲存過程JDBC儲存過程
- 造數儲存過程儲存過程
- 儲存過程——遊標儲存過程
- 儲存過程 傳 datatable儲存過程
- JAVA儲存過程(轉)Java儲存過程
- MySQL之儲存過程MySql儲存過程
- MySQL---------儲存過程MySql儲存過程
- linux呼叫儲存過程Linux儲存過程
- Winform呼叫儲存過程ORM儲存過程
- mysql儲存過程整理MySql儲存過程
- Oracle儲存過程-1Oracle儲存過程
- 痛苦的過程,編譯glomap編譯
- mssql sqlserver 批量刪除所有儲存過程的方法分享SQLServer儲存過程