DBAtlas · Atlas de operaciones de bases de datos

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.

Abrir en DBAtlas →

Más entradas de este motor