Como entrar no Oracle com ORA-00020: maximum number of processes (25) exceeded
Reiniciar não é a única opção (derrubar sessões também é uma opção, mas você pode apenas mascarar o problema real), você ainda pode colocar uma sessão (a que você suspeita que esteja em LOOP, por exemplo) em modo TRACE, por exemplo.
Isto é possível através da opção prelim do SQL*Plus (utilizando um cliente 10gR1 ou superior). Como você não tem uma sessão, e sim apenas um processo, não pode pesquisar as VIEWs, mas todos os comandos do oradebug, por exemplo (que só precisa de um processo) funcionam perfeitamente.
[oracle@CentOS5 ~]$ sqlplus / AS SYSDBA SQL*Plus: Release 11.2.0.2.0 Production on Sun Feb 20 07:08:20 2011 Copyright (c) 1982, 2010, Oracle. All rights reserved. ERROR: ORA-00020: maximum number of processes (25) exceeded Enter user-name: / as sysdba ERROR: ORA-00020: maximum number of processes (25) exceeded Enter user-name: / AS SYSDBA ERROR: ORA-00020: maximum number of processes (25) exceeded SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus [oracle@CentOS5 ~]$ sqlplus -prelim / AS SYSDBA SQL*Plus: Release 11.2.0.2.0 Production on Sun Feb 20 07:09:01 2011 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> SELECT COUNT(*) FROM V$PROCESS; SELECT COUNT(*) FROM V$PROCESS * ERROR at line 1: ORA-01012: not logged on Process ID: 0 Session ID: 0 Serial number: 0 SQL> !ps aux | grep ORCL oracle 24199 0.2 0.7 696048 16096 ? Ss 07:06 0:00 ora_pmon_ORCL oracle 24201 0.2 0.6 695216 13868 ? Ss 07:06 0:00 ora_psp0_ORCL oracle 24203 5.9 0.6 695216 13800 ? Ss 07:06 0:12 ora_vktm_ORCL oracle 24207 0.1 0.6 695216 13872 ? Ss 07:06 0:00 ora_gen0_ORCL oracle 24209 0.1 0.6 695216 13740 ? Ss 07:06 0:00 ora_diag_ORCL oracle 24211 0.2 1.0 695216 20920 ? Ss 07:06 0:00 ora_dbrm_ORCL oracle 24213 0.1 0.7 695216 14580 ? Ss 07:06 0:00 ora_dia0_ORCL oracle 24215 2.3 0.9 695216 19532 ? Ss 07:06 0:04 ora_mman_ORCL oracle 24217 0.2 0.9 699756 19648 ? Ss 07:06 0:00 ora_dbw0_ORCL oracle 24219 0.2 1.7 710768 36432 ? Ss 07:06 0:00 ora_lgwr_ORCL oracle 24221 0.2 0.7 695216 15024 ? Ss 07:06 0:00 ora_ckpt_ORCL oracle 24223 0.2 1.3 695216 27348 ? Ss 07:06 0:00 ora_smon_ORCL oracle 24225 0.1 0.9 695216 19656 ? Ss 07:06 0:00 ora_reco_ORCL oracle 24227 0.8 2.4 698132 49908 ? Ss 07:06 0:01 ora_mmon_ORCL oracle 24229 0.2 0.7 695216 16368 ? Ss 07:06 0:00 ora_mmnl_ORCL oracle 24231 0.1 0.6 696104 13844 ? Ss 07:06 0:00 ora_d000_ORCL oracle 24233 0.1 0.6 695248 13048 ? Ss 07:06 0:00 ora_s000_ORCL oracle 24281 0.1 1.8 718960 38108 ? Ss 07:07 0:00 ora_arc0_ORCL oracle 24283 0.2 2.2 727152 46808 ? Ss 07:07 0:00 ora_arc1_ORCL oracle 24285 0.1 1.8 718960 38156 ? Ss 07:07 0:00 ora_arc2_ORCL oracle 24287 0.1 1.8 718960 37900 ? Ss 07:07 0:00 ora_arc3_ORCL oracle 24289 65.1 0.7 695252 15364 ? Rs 07:07 2:01 ora_qmnc_ORCL oracle 24293 0.3 1.2 695740 26476 ? Ss 07:08 0:00 ora_q000_ORCL oracle 24303 0.2 0.5 694948 11680 ? Ss 07:09 0:00 oracleORCL (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq))) oracle 24308 0.0 0.0 4576 968 pts/0 S+ 07:10 0:00 /bin/bash -c ps aux | grep ORCL oracle 24310 0.0 0.0 4004 664 pts/0 R+ 07:10 0:00 grep ORCL SQL> oradebug setospid 24217 Oracle pid: 10, Unix process pid: 24217, image: oracle@CentOS5.localdomain (DBW0) SQL> oradebug tracefile_name /u01/app/oracle/diag/rdbms/orcl/ORCL/trace/ORCL_dbw0_24217.trc SQL> oradebug unlimit; Statement processed. SQL> oradebug event 10046 trace name context forever, level 12 Statement processed. SQL> !tail /u01/app/oracle/diag/rdbms/orcl/ORCL/trace/ORCL_dbw0_24217.trc WAIT #0: nam='rdbms ipc message' ela= 1119317 timeout=300 p2=0 p3=0 obj#=-1 tim=1298196713388468 *** 2011-02-20 07:11:55.276 WAIT #0: nam='rdbms ipc message' ela= 1887052 timeout=188 p2=0 p3=0 obj#=-1 tim=1298196715275854 *** 2011-02-20 07:11:58.279 WAIT #0: nam='rdbms ipc message' ela= 3001340 timeout=300 p2=0 p3=0 obj#=-1 tim=1298196718279168 *** 2011-02-20 07:12:01.289 WAIT #0: nam='rdbms ipc message' ela= 3005818 timeout=300 p2=0 p3=0 obj#=-1 tim=1298196721289138 SQL>
Muito bom, esse cenário ocorre em vários ambientes!
Segue uma observação também para evitar o estouro de sessions. Configurando os parâmetros abaixo, você evitaria o erro.
license_max_sessions
license_sessions_warning
Abraços
Boa dica, Hugão !
Valeu e grande abraço !!!
Portilho,
Estou enfrentando o mesmo problema com a versão 11gR2 e testei o exemplo acima, mas persiste sem acesso.
Poderia(m) postar algo, que venha me ajudar a resolver o problema?
Obrigado.
Opa, tudo bem?
Voce não pode matar alguma outra sessao ou reiniciar a instancia?