此時就可以透過下列步驟進行查明問題所在
Step1. 透過top查出異常的Oracle Session
使用tiptop帳號登入,在命令列上輸入top
此時可以看到下圖,一般來說大概都是會是排在第一、第二行的Session佔用大量的系統資源。
以此例來說,就可以初判是32522這個PID可能有異常。
Step 2. 再登入sqlplus '/as sysda'
執行下列兩個SQL Command:
SELECT SID FROM V$SESSION WHERE PADDR IN ( SELECT ADDR FROM V$PROCESS WHERE SPID=&PID);
SELECT SID FROM V$SESSION WHERE PADDR IN ( SELECT ADDR FROM V$PROCESS WHERE SPID=&PID);
執行後,會要你輸入一個PID
↑此處執行完畢後會得到一個SID
再執行
select osuser,process from v$session where sid=&sid;
↑再把剛才取得的SID輸入 (如下圖)
這個時候就可以得到一個USER 的ID跟PROCESS No.→一般還是稱為PID。
Step 3. 透過「線上使用情況(p_process)」程式就可以看到這個PID在執行什麼程式
Step 4. Kill Session
如果可以確定這個Session是異常的,那就可以點選資料後,按右方的殺程序把Session刪掉!
或是回到命令列,執行kill -9 PID一樣可以刪掉這個程序。
但要切記,一但把程序刪掉後,該user所執行的程式就會被中斷,
所以在刪除之前,必須再三確認那個Session是不是真的有異常。
不過我最近常遇到加班單還原(apyt103)導致系統效能異常,
所以我只要看到apyt103,一般都是殺無赦
提供參考囉!!
沒有留言:
張貼留言