ORA-12853, ORA-04031 e ORA-06512: at "SYS.UTL_RECOMP", line 865

This post is also available in: English

Esses dias, criei uma base na versão 11.2.0.4 bem pequena mas em um servidor poderoso Sun Sparc de 64 processadores.

Eu configurei o banco de dados para usar o mínimo possível de memory_target: 524M. O meu planejamento era o de aumentar este tamanho após terminar de preparar o servidor do BD.

Quando eu comecei a configurar o Database Vault, recebi o seguinte erro nas etapas de pós instalação (postDBConfigure.log):

DECLARE
*
ERROR at line 1:
ORA-12801: error signaled in parallel query server P245
ORA-12853: insufficient memory for PX buffers: current 138400K, max needed 887760K
ORA-04031: unable to allocate 65560 bytes of shared memory ("large pool","unknown object","large pool","PX msg pool")
ORA-06512: at "SYS.UTL_RECOMP", line 865
ORA-06512: at line 4

My alert.log had the following error: ORA-04031: unable to allocate 65560 bytes of shared memory ("large pool","unknown object","large pool","PX msg pool")

Como foi um erro de "PX" (paralelismo), e o meu sistema tem muitos processadores, o problema foi que o valor de default do parallel_max_servers estava como 270! Esse número seria aceitável se eu tivessse memória livre suficiente (especialmente na pga) para acomodar todos os processos que abririam, mas eu não tinha. O meu MEMORY_TARGET era o mínimo aceitável.

Então, para resolver isso, eu troquei este parâmetro para um valor menor:

ALTER SYSTEM SET parallel_max_servers=30 SCOPE=BOTH;

Isso resolveu o meu problema! =] .. Tive que voltar o meu BD para um restore point criado antes do vault e então, após executa-lo novamente, tudo funcionou!

Gostou? Não deixe de comentar ou deixar um 👍!

Deixe um comentário

Seu e-mail não será publicado.