DBAtlas · Database operations atlas

ORA-00020: maximum number of processes (N) exceeded

Oracle

What 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.

Open in DBAtlas →

More from this engine