[oracle10g]dbca創建數據庫時processes參數的最小取值

dbca新建數據庫時processes這個參數的默認值是150,一般沒有會蛋疼關心其最小取值,只是看到《2 day dba》和dbca中說最小值似乎是6,因爲它包括了數據庫實例的幾個必須啓動的後臺進程,是5個,加上至少一個的用戶進程,似乎就是這麼得出6的,但是根據上一博文,設爲6是必然不行的,報錯ora-03113,新建無法完成,那麼這個實際的最小值是多少呢?可能不會有人關心這個,我也只是好奇。

動手驗證,環境是windows下oracle10.2。首先試圖通過重建數據庫的方法指定嘗試的processes值,做着做着想到我這是有多笨啊,爲什麼不用alter system set processes=int 去改,一開始發現這麼改報錯,提示無法修改參數,後來想到沒有添加scope選項,試着加上scope=both,結果還是報錯,這才明白這是個靜態參數,只能使用scope=spfile來修改,且修改後重啓有效。

於是就這麼試了幾個值,發現在processes的值在20或十幾的時候無法打開數據庫,只能到mount階段,不過這個時候忘了關閉其他連接。值爲30的時候可以正常打開數據庫。這是想到通過不斷增加客戶端的連接來驗證這個參數對連接的限制:使用SQL>select count(*) from v$process可以查看當前連接數,當這個數字到達29時,無法連接普通用戶,然而這時候連接sysdba用戶時,可以連接,但是上面的查詢結果依然是29。在最新的驗證中發現,sysdba連接後顯示“連接到空閒例程”,且無法進行數據庫操作。不管那麼多,總之知道連接數到達指定值-1時,連接受限。

這時候想到可以關閉所有客戶端,重啓數據庫,到nomount階段,發現當前連接數15,到mount階段依然15,再到open狀態,是19,初步推斷所需最小連接數是19,經過多次重啓,依然是這個值,最後將processes的值修改爲20,成功啓動數據庫,查看當前連接值還是19。最後將processes的值修改爲19,重啓數據庫,就在我將要認爲那個實際的最小值是19的時候,數據庫竟然重啓成功,當前連接數是18!繼續將processes的值改爲18,重啓數據庫,終於發現沒有打開,提示ora-01092:oracle實例終止。這時修改processes到較大值,就可以正常打開了,打開後查看當前連接數發現時23。

總結一下,processes這個參數決定着oracle服務最大連接數,包括數據庫後臺進程和用戶進程,服務器進程也可能包括。要讓數據庫正常啓動(windows下10g企業版),這個參數的最小值在19附近。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章