ORA-00020: maximum number of processes (N) exceeded
OracleWhat does it mean?
The number of processes of the instance reached the upper limit defined by the PROCESSES initialization parameter, and no new connection/process can be created. New sessions cannot connect; even an administrator may be unable to connect.
Why does it happen?
An oversized application connection pool, connections that are never closed (leaks), more concurrent users than expected or a PROCESSES parameter set too low leads to the limit being exceeded. Sometimes hung background jobs or parallel query processes also consume processes.
How to fix it
You can connect with sqlplus -prelim / as sysdba, but this connection cannot run SQL (v$session cannot be queried); it is only usable for oradebug (e.g. hanganalyze) and SHUTDOWN ABORT. To free slots, carefully kill idle application server processes at the OS level (ps -ef | grep 'LOCAL=NO'); then, with a normal SYSDBA connection, find leaked sessions via v$session/v$process and close them with ALTER SYSTEM KILL SESSION. For a permanent fix, increase PROCESSES and restart the instance (if SESSIONS is set explicitly in the spfile it is not re-derived; update it too). On the application side, fix the connection pool maximum and idle connection cleanup.
More from this engine
- ORA-04061existing state of package/procedure has been invalidated
- ORA-01466unable to read data - table definition has changed
- ORA-08176consistent read failure; rollback data not available
- ORA-01113file N needs media recovery
- ORA-02393exceeded call limit on CPU usage
- ORA-12801error signaled in parallel query server Pnnn