DBAtlas · Atlas d'exploitation des bases de données

ORA-00020: maximum number of processes (N) exceeded (nombre maximal de processus (N) dépassé)

Oracle

Que signifie cette erreur ?

Le nombre de processus de l'instance a atteint la limite supérieure définie par le paramètre d'initialisation PROCESSES, et aucune nouvelle connexion/aucun nouveau processus ne peut être créé. Les nouvelles sessions ne peuvent pas se connecter ; même un administrateur peut ne pas y parvenir.

Cause

Un pool de connexions applicatif surdimensionné, des connexions jamais fermées (fuites), plus d'utilisateurs simultanés que prévu ou un paramètre PROCESSES trop bas entraînent le dépassement de la limite. Parfois, des jobs d'arrière-plan bloqués ou des processus de requêtes parallèles consomment aussi des processus.

Comment la corriger

Vous pouvez vous connecter avec sqlplus -prelim / as sysdba, mais cette connexion ne peut pas exécuter de SQL (v$session ne peut pas être interrogée) ; elle ne sert qu'à oradebug (par ex. hanganalyze) et SHUTDOWN ABORT. Pour libérer des emplacements, tuez prudemment au niveau de l'OS les processus serveur applicatifs inactifs (ps -ef | grep 'LOCAL=NO') ; puis, avec une connexion SYSDBA normale, trouvez les sessions en fuite via v$session/v$process et fermez-les avec ALTER SYSTEM KILL SESSION. Comme correctif durable, augmentez PROCESSES et redémarrez l'instance (si SESSIONS est défini explicitement dans le spfile, il n'est pas recalculé ; mettez-le aussi à jour). Côté application, corrigez le maximum du pool de connexions et le nettoyage des connexions inactives.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur