文章目錄
- ORA-00020: maximum number of processes (150) exceeded
今天Oracle資料庫遇到一個問題,使用者在用用戶端登陸資料庫時,拋出異常:
ORA-00020: maximum number of processes (150) exceeded
從表面上看是Oracle串連的使用者過多,但是這是一個開發環境,沒有什麼系統在使用,就我們幾個開發人員用,之前從來沒有出現過這個異常,所以也不知道怎麼回事。於是在網上Google了一下,解決辦法就是把數值設定的大一點,於是我重啟了伺服器,設定成了300,執行了如下命令。
SQL> alter system set processes=300 scope=spfile;
過來一會兒伺服器又提示同樣的異常了。於是又重啟了伺服器,結果發現另外的一個剛才沒有注意到的問題,informatica無法使用了。這個時候仔細研究,發現原來是informatica的密碼到期了,可能是informatica不斷的試著使用到期的密碼去串連資料庫,導致資料庫的串連被佔用完,所以其他系統都無法使用資料庫了。
原來,Oracle裡面在建立使用者是我使用的是Default Profile,而這個預設的配置裡面,密碼的到期策略是180天到期,一看我有好幾個資料庫使用者都要在這兩天內到期。解決的辦法是修改Default Profile,把密碼到期策略改為永不到期。執行的腳步就是:
ALTER PROFILE "DEFAULT" LIMIT SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL UNLIMITED CONNECT_TIME UNLIMITED IDLE_TIME UNLIMITED LOGICAL_READS_PER_SESSION UNLIMITED LOGICAL_READS_PER_CALL UNLIMITED COMPOSITE_LIMIT UNLIMITED PRIVATE_SGA UNLIMITED FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LIFE_TIME UNLIMITED PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_LOCK_TIME 1 PASSWORD_GRACE_TIME 7 PASSWORD_VERIFY_FUNCTION NULL;
對於已經密碼到期的使用者,那麼就需要重新啟用這個使用者,設定下密碼了,對於快到期而沒有到期的使用者,那麼就不要修改了,都會變成永不到期。
所以建議在安裝Oracle資料庫後,修改一下Default Profile,把密碼改為不到期,畢竟以後很多服務都要不斷的定期修改密碼很麻煩的,雖然定期修改密碼是個好習慣。