儲存過程編譯時卡死
儲存過程編譯時卡死
參考:http://blog.itpub.net/26015009/viewspace-773435/
儲存過程編譯沒完成,或者編譯失敗時,oracle 資料庫會自動把相應的儲存過程鎖起來,最無賴的做法是重啟資料庫,或找到相關會話,殺掉;
一 , 找到之前除錯的儲存過程 名稱,使用一下語句找到 sid
select a.sid,a.OBJECT from v$access a where object like '%儲存過程名%'
可輔助查V$DB_OBJECT_CACHE確認
SELECT * FROM V$DB_OBJECT_CACHE WHERE name='儲存過程名';
v$access顯示目前庫快取物件被鎖定的資訊,這個被強加的鎖用來確保庫快取物件在sql執行請求它時不會被老化
二 、拿到sid之後,去 v$session檢視 去查詢 sid,serial#
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID= 140
三、拿到 sid,serial# 之後就簡單了,直接殺死 session,儲存過程就可以重新編譯了
alter system kill session '140,10555' immediate;
如資料庫中殺了沒反應,需要在作業系統上殺該會話;
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
#kill -9 23462626
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-1817693/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 儲存過程編譯時會卡死儲存過程編譯
- 編譯儲存過程時被卡死的處理方法編譯儲存過程
- Oracle 編譯儲存過程卡死解決方法Oracle編譯儲存過程
- Oracle儲存過程編譯卡死的解決方法Oracle儲存過程編譯
- oracle 儲存過程重新編譯方法Oracle儲存過程編譯
- 建立儲存過程編譯無效物件儲存過程編譯物件
- 一個儲存過程編譯HANG住的分析儲存過程編譯
- 編寫JAVA儲存過程Java儲存過程
- oracle 儲存過程不能編譯-- (編譯的同時正在訪問所導致的) [轉載]Oracle儲存過程編譯
- 把自編儲存過程設定為系統儲存過程儲存過程
- 儲存過程被鎖無法編譯的解決儲存過程編譯
- 儲存過程裡呼叫編譯自己是什麼情況?儲存過程編譯
- oracle儲存過程編譯死掉的原因及解決(zt)Oracle儲存過程編譯
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 儲存過程儲存過程
- mysql-定時呼叫儲存過程MySql儲存過程
- 編寫儲存過程基本注意事項儲存過程
- 自動編號的儲存過程 (轉)儲存過程
- 編譯過程編譯
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- MySQL儲存過程詳解 mysql 儲存過程linkMySql儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- SQL SERVER 臨時表導致儲存過程重編譯(recompile)的一些探討SQLServer儲存過程編譯Compile
- 儲存過程與儲存函式儲存過程儲存函式
- Oracle儲存過程Oracle儲存過程
- 使用儲存過程儲存過程
- sybase儲存過程儲存過程
- java儲存過程Java儲存過程
- 管理儲存過程儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- SQLSERVER儲存過程SQLServer儲存過程
- 近期編寫tcbs儲存過程小記(1)儲存過程
- 實戰儲存過程排程過程儲存過程
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- Javac編譯過程Java編譯