DBAtlas · Atlas de operaciones de bases de datos

ORA-00020: maximum number of processes (N) exceeded (se superó el número máximo de procesos (N))

Oracle

¿Qué significa?

El número de procesos de la instancia alcanzó el límite superior definido por el parámetro de inicialización PROCESSES y no se puede crear ninguna conexión/proceso nuevo. Las nuevas sesiones no pueden conectarse; incluso puede que un administrador no logre conectarse.

¿Por qué ocurre?

Un pool de conexiones de la aplicación sobredimensionado, conexiones que nunca se cierran (fugas), más usuarios concurrentes de lo previsto o un parámetro PROCESSES demasiado bajo provocan que se supere el límite. A veces también consumen procesos jobs en segundo plano colgados o procesos de parallel query.

Cómo solucionarlo

Puede conectarse con sqlplus -prelim / as sysdba, pero esta conexión no puede ejecutar SQL (no se puede consultar v$session); solo sirve para oradebug (p. ej., hanganalyze) y SHUTDOWN ABORT. Para liberar huecos, termine con cuidado a nivel de SO los procesos servidor inactivos de la aplicación (ps -ef | grep 'LOCAL=NO'); después, con una conexión SYSDBA normal, localice las sesiones con fugas mediante v$session/v$process y ciérrelas con ALTER SYSTEM KILL SESSION. Como solución permanente, aumente PROCESSES y reinicie la instancia (si SESSIONS está establecido explícitamente en el spfile, no se recalcula; actualícelo también). En el lado de la aplicación, corrija el máximo del pool de conexiones y la limpieza de conexiones inactivas.

Abrir en DBAtlas →

Más entradas de este motor