一個關於PSP0 程式懸而未決的問題

pingley發表於2012-04-05
一個關於PSP0 程式懸而未決的問題
[oracle@zeng ~]$ sql
SQL*Plus: Release 11.2.0.1.0 Production on Thu Apr 5 22:03:54 2012
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-00443: background process "PSP0" did not start
SQL> host
[oracle@zeng ~]$ oerr ora 00443
00443, 00000, "background process \"%s\" did not start"
// *Cause:  The specified process did not start.
// *Action: Ensure that the executable image is in the correct place with
//          the correct protections, and that there is enough memory.
說確保你資料庫的可執行檔案受到保護沒有損壞,保證有足夠的記憶體提供給oracle資料庫。
不過我覺得應該不會是上述兩個問題,因為這臺虛擬機器只有我一個人使用,而且我還很愛護他,而且以前都好好的,甚至更少記憶體的時候都好好的。再去看看alert.log
adrci> show alert -tail 5
2012-04-05 22:04:11.132000 +08:00
VKTM started with pid=3, OS id=4953 at elevated priority
VKTM running at (10)millisec precision with DBRM quantum (100)ms
GEN0 started with pid=4, OS id=4957 
DIAG started with pid=5, OS id=4959 
DBRM started with pid=6, OS id=4961 
2012-04-05 22:04:14.806000 +08:00
Process PSP0 died, see its trace file
USER (ospid: 4900): terminating the instance due to error 443
2012-04-05 22:04:16.488000 +08:00
Instance terminated by USER, pid = 4900
沒有有用的資訊,不過有問題檢視 alert.log 是個好習慣。
我們來看看那個PSP0 ,這個程式好陌生,趕緊找資料弄明白。
PSP0 程式翻譯成中文就是程式產生程式或者叫程式孵化程式。關鍵是他是怎麼產生程式的?
產生什麼程式?
套用作業系統的原理:
PSP0應該作為父程式向系統請求建立子程式。而子程式建立的過程是:
1、申請空白的PCB(程式控制塊)。
2、為程式分配所需的資源。
3、初始化程式控制塊,比如填寫父程式id。
4、如果就緒佇列能夠容納新的程式,便把程式插入就緒佇列。
在這裡根據一些提示,應該是第二步出現了問題。不過錯誤出現很多時候既有不可再現性。
我再次startup 本想再現一次錯誤的,結果啟動了oracle 資料庫,並且沒有報錯。另外一個問題時PSP0 產生了什麼程式。既然系統啟動了,那就來看看PSP0 之後有那些程式產生,把這些在PSP0 建立的程式,歸功於PSP0 的程式的建立嗎?沒有明確的理由。這個問題限於本人的水平,到此就打住了,希望本篇博文能起到拋磚引玉的作用,大家一起來
研究研究這個PSP0 程式。
adrci> show alert -tail 60
2012-04-05 23:14:33.810000 +08:00
  diagnostic_dest          = "/opt/oracle11g"
PMON started with pid=2, OS id=5561 
VKTM started with pid=3, OS id=5563 at elevated priority
VKTM running at (10)millisec precision with DBRM quantum (100)ms
2012-04-05 23:14:34.903000 +08:00
GEN0 started with pid=4, OS id=5567 
DIAG started with pid=5, OS id=5569 
DBRM started with pid=6, OS id=5571 
PSP0 started with pid=7, OS id=5573 #PSP0在這裡。
DIA0 started with pid=8, OS id=5575 
2012-04-05 23:14:36.162000 +08:00
MMAN started with pid=9, OS id=5577 
DBW0 started with pid=10, OS id=5579 
LGWR started with pid=11, OS id=5581 
CKPT started with pid=12, OS id=5583 
SMON started with pid=13, OS id=5585 
RECO started with pid=14, OS id=5587 
2012-04-05 23:14:37.506000 +08:00
MMON started with pid=15, OS id=5589 
MMNL started with pid=16, OS id=5591 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26110315/viewspace-720481/,如需轉載,請註明出處,否則將追究法律責任。

相關文章