ORA-00020: maximum number of processes (xxxx) exceeded 報錯解決方法


轉自:http://blog.51cto.com/lee90/1788124

今天java開發在連接線上的oracle大量導數據,一會提示連接不上數據庫了。我本地用sqldeveloper也連接不上。

登錄到服務器,重啟oracle,本地還是不能連接。

 

xshell里面登錄oracle

# su - oracle

# sqlplus / as sysdba    連接Oracle

提示要輸入用戶名和密碼。

並報錯ORA-00020: maximumnumber of processes (300) exceeded

根據報錯信息是由於processes進程數達到了最大值。

 

常規方法無法登錄,我們連接時候要加上-prelim參數

# sqlplus -prelim/ as sysdba 這樣終於登錄進Oracle的SQL界面

【參考http://blog.sina.com.cn/s/blog_ad6555610101ar4t.html 、 http://blog.sina.com.cn/s/blog_ad6555610101ar46.html】

 

SQL> set linesize 500;

SQL> show parameter processes;

wKiom1dc1jKw2j-3AAA3OXOp6Hs241.png

可以看到默認的processes設置的是300. 太小了,稍后我們得改一改。

 

系統生產系統,不能重啟數據庫,好在系統過了一會兒恢復正常了。主要是因為大量數據庫的插入修改操作造成的。

 

解決方案:

在系統空閑時,修改系統processes參數為1000,重啟數據庫。【processes參數是靜態參數,修改后需要啟動數據庫。】

SQL> alter system set processes=1000 scope=spfile;

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP;

SQL> show parameter processes;

wKioL1dc10HBvNdZAAA0NuXXhyo213.png

可以看到現在processes 參數被改成1000了。

 

我們再執行

SQL> show parameter spfile;  看下spfileora11g.ora文件的路徑

wKiom1dc1jPRSvX9AAAlOp8ivN4838.png

 

然后退出oracle控制台,到shell終端界面。

 

# cp /data/oracle/product/11.2.0/db_1/dbs/spfileora11g.ora/tmp

# vim /tmp/spfileora11g.ora  【這是個二進制文件,打開會顯示部分亂碼,但是我們能看到processes=1000,說明已經寫入配置文件了】

 

wKioL1dc10HRjV68AAAPw1__Jlg165.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM