Um de meus clientes implantou o banco de dados de nosso produto em uma máquina Solaris que já possui 3 instâncias do Oracle. Portanto, neste momento, existem 4 instâncias do Oracle em execução na mesma máquina. E agora estamos enfrentando problemas de desempenho.
Não tenho acesso a outras instâncias ou à máquina e todas as ferramentas que tenho são alert.log, AWR e ADDM. Eu sei que há algo relacionado a várias instâncias, mas não posso provar.
Então, minha pergunta é: você já passou por uma situação semelhante? Como devo lidar com isso? Como posso identificar a causa dos problemas de desempenho relacionados a várias instâncias?
fonte
A execução de várias instâncias no mesmo servidor é possível e, em alguns casos, necessária. O oratab foi projetado especificamente para lidar com o gerenciamento de várias instâncias. Nos casos em que você possui vários aplicativos independentes, pode ser preferível ter uma instância para cada aplicativo.
Ter memória suficiente é fundamental. O Oracle constrói o SGA na memória compartilhada. Se você não tiver memória suficiente, o SGA ou os processos começarão a ser trocados. Isso é conhecido como thrashing e resulta em uma penalidade de desempenho significativa.
Pode ser possível ajustar as instâncias para executar com um SGA menor. A Oracle fornece ferramentas para ajudar a ajustar o tamanho da SGA. Se alguma das instâncias tiver um SGA excessivamente grande, penalizará todas as instâncias.
Outro uso importante da memória é o espaço no buffer. Isso atua como cache secundário e pode eliminar E / S de leitura significativa.
A execução
sar
(assumindo que o Unix tenha base no sistema operacional) pode fornecer bons diagnósticos sobre onde está o problema. Os problemas prováveis são a troca ou a saturação de E / S do disco. A adição de RAM provavelmente solucionará um desses problemas.A saturação de E / S de disco também pode ser tratada movendo alguns espaços de tabela para outros discos. Geralmente, configuro o Oracle para que a E / S seja distribuída pelo maior número possível de discos.
EDIT: Estes são alguns casos que podem exigir instâncias separadas.
fonte
O recurso mais crítico é a RAM.
Cada instância do Oracle em execução aloca alguma RAM para si própria, quando é iniciada e não está carregada.
Estamos executando um 10g com 10 e 11g com 8 instâncias, mas esses são servidores de desenvolvimento. Após a reinicialização do sistema operacional, alguns dos serviços Oracle não são iniciados automaticamente e devem ser iniciados manualmente: Oradim -startup -sid xxx.
Estamos apenas começando a usar o Gerenciamento automático de memória, mas a situação permanece diferente do SQL Server, onde você pode adicionar bancos de dados tanto quanto o espaço em disco.
No seu caso, com mais instâncias em uma máquina, o SGA de cada instância fica menor, menos sql pré-compilado pode ser armazenado em cache e a máquina precisa fazer mais compilação de sql, o que reduz o desempenho.
Adicionar RAM pode ajudar na sua situação.
fonte