ORA-04030: out of process memory when trying to allocate N bytes (memória do processo esgotada ao tentar alocar N bytes)
OracleO que significa?
Um processo servidor não conseguiu alocar espaço em sua PGA (Program Global Area), ou seja, na memória privada do processo. Diferentemente da memória compartilhada da SGA, trata-se do esgotamento da memória própria de uma única sessão/processo.
Por que acontece?
Operações de sort/hash muito grandes, coleções PL/SQL superdimensionadas, variáveis acumulando em loops sem controle ou limites de memória de processo do sistema operacional (ulimit -v/-d, vm.max_map_count, espaço de endereçamento) esgotaram a memória do processo. Em instâncias de 32 bits, o limite do espaço de endereçamento também pode causá-lo.
Como resolver
Descubra o que está consumindo memória examinando a categoria de alocação na segunda linha do erro (por exemplo, 'pga heap', 'koh-kghu sessi'). Revise PGA_AGGREGATE_LIMIT / PGA_AGGREGATE_TARGET. Verifique os limites do sistema operacional (ulimit -a; memlock, as, stack para o usuário oracle). Otimize a consulta/o PL/SQL e reduza o tamanho dos lotes de processamento em massa. Se necessário, contate o Oracle Support com o arquivo de trace.
Mais entradas deste banco
- ORA-38029object statistics are locked
- ORA-00845MEMORY_TARGET not supported on this system (MEMORY_TARGET não é suportado neste sistema)
- ORA-27102out of memory
- ORA-12537TNS:connection closed
- ORA-03135connection lost contact
- ORA-01033ORACLE initialization or shutdown in progress (inicialização ou shutdown do ORACLE em andamento)
- ORA-00600internal error code, arguments: [...]