um comando de memória útil que você pode usar para monitorar o Oracle SGA é o comando ipcs. O comando ipcs exibe o tamanho de cada segmento de memória compartilhada para o SGA. Se não houver memória suficiente para que todo o SGA se encaixe em um pedaço contíguo de memória, o SGA será construído em segmentos de memória não contíguos. No caso de uma falha instantânea, a memória pode não ser liberada. Se isso acontecer com você, observe que o comando ipcrm remove os segmentos (ipcrm –m para segmentos de memória e ipcrm –s para segmentos de semáforo). Use ipcs – b no Solaris e ipcs – a no Linux, HPUX e Aix.
no exemplo anterior, o SGA é construído em três segmentos não contíguos (constituindo o 100M+ SGA). A instância é então desligada e iniciada com um SGA menor (então o SGA é composto de pedaços contíguos de memória). Depois que o SGA foi reduzido para 70M, novamente emito o comando ipcs:
Montagem de todo o SGA em um único segmento de memória compartilhada é geralmente preferível devido a sobrecarga que pode ser necessário para controlar mais de um segmento e o tempo exigido para alternar entre os segmentos. Você pode aumentar o tamanho máximo de um único segmento de memória compartilhada aumentando a configuração SHMMAX no arquivo /etc/system (ou /etc/sysctl.conf dependendo da versão). Consulte a documentação de instalação do Oracle para obter informações mais específicas para sua plataforma. No Solaris 10, a configuração dos parâmetros de memória compartilhada foi movida para o controle de recursos, portanto, se você modificar o arquivo /etc/system, quaisquer alterações feitas serão ignoradas. Por fim, se você configurar o Hugepages, a memória é retirada de um pool e os semáforos não são usados. O AMM requer o uso de semáforos, portanto, se você definir MEMORY_TARGET, não poderá usar Hugepages.
dica
Use o comando ipcs para ver se o seu SGA é construído usando vários pedaços de memória não contíguos. Uma falha no banco de dados pode causar problemas ao não liberar a memória. Use o comando ipcrm (somente se as peças SGA não forem liberadas após uma falha no banco de dados) para remover as peças SGA da memória. Não emita o comando ipcrm com um banco de dados em execução.