ORA-04030: out of process memory when trying to allocate N bytes (memoria de proceso agotada al intentar asignar N bytes)
Oracle¿Qué significa?
Un proceso servidor no pudo asignar espacio en su PGA (Program Global Area), es decir, en la memoria privada del proceso. A diferencia de la memoria compartida de la SGA, se trata del agotamiento de la memoria propia de una sola sesión/proceso.
¿Por qué ocurre?
Operaciones de sort/hash muy grandes, colecciones PL/SQL sobredimensionadas, variables que se acumulan en bucles sin control o límites de memoria de procesos del sistema operativo (ulimit -v/-d, vm.max_map_count, espacio de direcciones) han agotado la memoria del proceso. En instancias de 32 bits, el límite del espacio de direcciones también puede provocarlo.
Cómo solucionarlo
Averigüe qué consume la memoria examinando la categoría de asignación de la segunda línea del error (p. ej., 'pga heap', 'koh-kghu sessi'). Revise PGA_AGGREGATE_LIMIT / PGA_AGGREGATE_TARGET. Revise los límites del sistema operativo (ulimit -a; memlock, as, stack para el usuario oracle). Optimice la consulta/el PL/SQL y reduzca el tamaño de los lotes de procesamiento masivo. Si es necesario, contacte con Oracle Support con el archivo de trace.
Más entradas de este motor
- ORA-38029object statistics are locked
- ORA-00845MEMORY_TARGET not supported on this system (MEMORY_TARGET no es compatible con este sistema)
- ORA-27102out of memory
- ORA-12537TNS:connection closed
- ORA-03135connection lost contact
- ORA-01033ORACLE initialization or shutdown in progress (inicialización o apagado de ORACLE en curso)
- ORA-00600internal error code, arguments: [...]