ORA-00020: maximum number of processes (N) exceeded (número máximo de processos (N) excedido)
OracleO que significa?
O número de processos da instância atingiu o limite superior definido pelo parâmetro de inicialização PROCESSES, e nenhuma nova conexão/processo pode ser criado. Novas sessões não conseguem se conectar; até um administrador pode não conseguir.
Por que acontece?
Um pool de conexões da aplicação superdimensionado, conexões que nunca são fechadas (vazamentos), mais usuários simultâneos do que o esperado ou um parâmetro PROCESSES baixo demais levam à ultrapassagem do limite. Às vezes, jobs em background travados ou processos de consultas paralelas também consomem processos.
Como resolver
Você pode se conectar com sqlplus -prelim / as sysdba, mas essa conexão não executa SQL (não é possível consultar v$session); ela só serve para oradebug (por exemplo, hanganalyze) e SHUTDOWN ABORT. Para liberar slots, encerre com cuidado, no nível do sistema operacional, processos servidores ociosos da aplicação (ps -ef | grep 'LOCAL=NO'); depois, com uma conexão SYSDBA normal, encontre as sessões vazadas via v$session/v$process e feche-as com ALTER SYSTEM KILL SESSION. Como solução permanente, aumente PROCESSES e reinicie a instância (se SESSIONS estiver definido explicitamente no spfile, ele não é recalculado; atualize-o também). No lado da aplicação, corrija o máximo do pool de conexões e a limpeza de conexões ociosas.
Mais entradas deste banco
- ORA-04061existing state of package/procedure has been invalidated (o estado existente do package/procedure foi invalidado)
- ORA-01466unable to read data - table definition has changed (não é possível ler os dados; a definição da tabela mudou)
- ORA-08176consistent read failure; rollback data not available (falha de leitura consistente; dados de rollback indisponíveis)
- ORA-01113file N needs media recovery
- ORA-02393exceeded call limit on CPU usage
- ORA-12801error signaled in parallel query server Pnnn (erro no servidor de parallel query Pnnn)