ORA-00020: maximum number of processes () exceeded

oracle-error

Problema

En el momento que los procesos de la base de datos llegan al 100%, esta deja de permitir nuevas sesione y/o conexiones a las instancias y se obtiene el siguiente error ORA-00020

ORA-00020: maximum number of processes () exceeded

Solucion ORA-00020

Lo primero que debemos hacer, es validar cual es el valor de nuestra variable

SQL> show parameter processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     1
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
global_txn_processes                 integer     1
job_queue_processes                  integer     20
log_archive_max_processes            integer     4
processes                            integer     300

Asi mismo, tambien se puede utilizar el siguiente query para validar los parámetros:

set lines 222
col RESOURCE_NAME for a15
col LIMIT_VALUE for a15
select resource_name,current_utilization, limit_value
from v$resource_limit
where resource_name in ('processes') order by resource_name;

RESOURCE_NAME   CURRENT_UTILIZATION LIMIT_VALUE
--------------- ------------------- ---------------
processes                        47         300

Debemos considerar que si requerimos realizar el aumento al parametro ‘processes’, tambien deberíamos aumentar los parámetros ‘sessions’ y transactions. Una formula basica para determinar los valores de estos parámetros es la siguiente:

processes=x
sessions=x*1.1+5
transactions=sessions*1.1

Asi, para obtener el valor de los parámetros se realizaría de la siguiente manera:

SQL> show parameter processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     1
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
global_txn_processes                 integer     1
job_queue_processes                  integer     20
log_archive_max_processes            integer     4
processes                            integer     300

SQL> show parameter sessions

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
sessions                             integer     97
shared_server_sessions               integer

SQL> show parameter transactions

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
transactions                         integer     106
transactions_per_rollback_segment    integer     5

O con el query

set lines 222
col RESOURCE_NAME for a15
col LIMIT_VALUE for a15
select resource_name,current_utilization, limit_value
from v$resource_limit
where resource_name in ('sessions','processes','transactions') order by resource_name;

RESOURCE_NAME   CURRENT_UTILIZATION LIMIT_VALUE
--------------- ------------------- ---------------
processes                        47         300
sessions                         62         97
transactions                      0  UNLIMITED

Como siempre, antes de modificar parámetros de inicialización, realizamos la creacion de un pile de respaldo y posterior a este los cambios requeridos

SQL> create pfile='$ORACLE_HOME/dbs/pfileCSOYUNDBA.ora' from spfile;
SQL> alter system set processes=500 scope=spfile;
SQL> alter system set sessions=555 scope=spfile;
SQL> alter system set transactions=610 scope=spfile;

Finalmente, tras realizar el cambio de los parámetros, necesitamos realizar un reinicio de la instancia.

SQL> shutdown immediate;
SQL> startup;

Te invito a seguir consultando más errores relacionados a Oracle dando clic aquí.

 

Acerca de JulianOrtiz0506

Soy administrador de bases de datos y desarrollador web, desde mis inicios en el mundo de la informática, he implementando proyectos personales y empresariales. Por consiguiente esto me ha permitido contar con una amplia calificación y destreza sobre mis áreas de conocimiento. Sobre todo suelo estar en constante aprendizaje, diariamente me estoy informando sobre nuevas tecnologías. Ya queme gusta estar actualizado en la tecnología de punta para todas las plataformas que me apasionan y con las cuales trabajo día a día.

Ver todas las entradas de JulianOrtiz0506 →

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *