- Este tópico contém 8 respostas, 4 vozes e foi atualizado pela última vez 17 anos, 2 meses atrás por
Anônimo.
-
AutorPosts
-
7 de outubro de 2008 às 4:10 pm #83066
braza
ParticipanteBom dia,
Gostaria de saber o porque do erro:
[color=red]
ORA-04031: unable to allocate 4096 bytes of shared memory (“shared pool”,”begin sys.dbms_output.get_…”,”PL/SQL MPCODE”,”BAMIMA: Bam Buffer”)
[/color]Já incrementei a shared pool e de tempos em tempos este erro aparece no meu banco.
Até agora não consegui identificar a real causa deste erro.
Já tentei limpar a shared pool, e mesmo assim não me livro deste erro. Tentei também alocar o objeto do banco na shared pool e também não deu certo.
A única maneira que encontrei para contorná-lo é fazendo um shutdown no banco, mas creio que essa não seja a melhor solução.
Como devo proceder para analisar este caso ???
7 de outubro de 2008 às 6:32 pm #83074Marcio68Almeida
ParticipanteEsse tipo de erro costuma acontecer com consultas que não usam variável do tipo bind, e acabam fragmentando bastante a memória, não quer dizer que não há espaço em memória e sim que não há espaço contínuo para o que deve ser alocado.
O melhor é rever a aplicação… e melhorar as consultas…
Como paleativo, você pode executar o seguinte comando de tempos em tempos…
alter system flush shared_pool;
alivia um pouco e temporariamente a memória…7 de outubro de 2008 às 8:59 pm #83077Ricardo Portilho Proni
ParticipanteQual a versao do seu Oracle?
Se for 10g, use memeoria automatica (sga_target), esse problema ira sumir.7 de outubro de 2008 às 9:08 pm #83081braza
Participanteok.
Muito obrigado.
braza.
7 de outubro de 2008 às 9:10 pm #83082braza
ParticipanteA versao do oracle é 8i.
Tem alguma solucao prática como esta ???
grato,
braza.
7 de outubro de 2008 às 10:14 pm #83084Ricardo Portilho Proni
ParticipanteNao, entao eh realmente o que o coleca falou…
Aumenta a SHARED, e use BINDs em tudo.7 de outubro de 2008 às 10:21 pm #83085braza
Participanteok.
Muito obrigado,
braza.
7 de outubro de 2008 às 10:49 pm #83087Ricardo Portilho Proni
ParticipanteNao, entao eh realmente o que o coleca falou…
Aumenta a SHARED, e use BINDs em tudo.9 de outubro de 2008 às 10:22 pm #83117Anônimo
[quote=”braza”:732kusmi]Bom dia,
Gostaria de saber o porque do erro: [color=red] ORA-04031: unable to allocate 4096 bytes of shared memory ("shared pool","begin sys.dbms_output.get_...","PL/SQL MPCODE","BAMIMA: Bam Buffer") [/color] Já incrementei a shared pool e de tempos em tempos este erro aparece no meu banco. Até agora não consegui identificar a real causa deste erro. Já tentei limpar a shared pool, e mesmo assim não me livro deste erro. Tentei também alocar o objeto do banco na shared pool e também não deu certo. A única maneira que encontrei para contorná-lo é fazendo um shutdown no banco, mas creio que essa não seja a melhor solução. Como devo proceder para analisar este caso ???[/quote]BOA TARDE
ORA-04031 não é possível alocar num bytes de memória compartilhada num, num, num
Causa: Mais memória compartilhada do que aquela que foi alocada é necessária no processo do sistema operacional . A memória privada do SGA foi exaurida
Ação: Use o pacote DBMS_SHARED_POOL para controlar grandes pacotes, reduza seu uso de memória compartilhada ou aumente a quantidade de memória compartilhada disponível, aumentando o valor definido para o parâmetro de inicialização SHARED_POOL_SIZE.ESPERO TER AJUDADO
-
AutorPosts
- Você deve fazer login para responder a este tópico.