quinta-feira, 26 de março de 2015

ADRCI - Como Otimizar a Utilização de Espaço Causado pelos Logs e Traces? - PARTE I

Olá como vocês estão? Espero que bem. Já a algum tempo que venho comentando com alguns amigos sobre o meu desejo de escrever sobre o ADRCI da Oracle, porém nunca me encontrei em uma situação que me desse vontade para tal, pois bem, hoje estou aqui para falar de um cenário que ocorreu comigo e que pode muito bem ocorrer com qualquer um de nós no dia-a-dia, ainda mais se estivermos administrando um ambiente que não fomos nós que criamos.

Tentarei neste post, mostrar á vocês a eficácia de se manter sob controle este aplicativo que gerencia os logs e arquivos de trace utilizado nos diagnósticos de muitos de nossos problemas corriqueiros. Vamos lá!

ADRCI - O que é?

É sempre de bom tom conceituar algo antes de iniciar, trata-se de uma interface do tipo command-line, onde é possivel gerenciar, remover ou visualizar conteúdo de arquivos gerados a todo momento pelos nossos bancos de dados ( Por Exemplo : Traces, Alert.log, Incident, e etc).

O ADRCI foi introduzido na versão Oracle Database 11g, é capaz de executar scripts a partir de sua linha de comando, assim como fazemos via SQL*Plus, também é possivel como foi dito acima gerenciar arquivos, mais quais são as categorias desses arquivos que podem ser gerenciados pelo ADRCI?

Atualmente a intenção da Oracle em usar o ADRCI, além de facilitar o gerenciamento dos arquivos, também criou uma espécie de ITIL dentro do próprio Banco de Dados, como assim? Sim , é isso mesmo pois o ADRCI trata problemas e incidentes, conceitos muito familiares para quem atua com ITIL.

Problemas : são aqueles cujo impacto é critico para o banco de dados, como por exemplo a geração de erros do tipo ORA-0600 ou ORA-07445 ou ainda o famoso ORA-4031

Incidente: os incidentes são tratados a parte e são gerados todas as vezes que temos muitos problemas recorrentes dentro do nosso banco, dai então é gerado um incidente e o mesmo deverá ser tratado no momento oportuno pelo DBA ou pelo administrador que estiver conduzindo o ambiente.

ESTRUTURA DO ADR

Abaixo veremos um schema de como é a hierarquia de pastas e diretórios utilizados pelo ADR :






Bem para maiores informações sobre o ADR e suas estruturas podemos utilizar a documentação oficial que é bastante esclarecedora sobre o assunto, vocês podem encontra-la no seguinte link abaixo :

ADRCI-Doc

O CENÁRIO

Meu problema foi gerado graças a um pequeno descuido com relação a não observância no que diz respeito aos limites do sistema operacional no tocante espaço, por exemplo os meus arquivos de traces e logs eram gerados indiscriminadamente dentro do meu diretório, sem qualquer politica adequada para minha realidade de espaço disponível para tal.

Foi onde me deparei com o problema, pois a ferramenta de monitoração do meu ambiente, de tempos em tempos me informava que eu estava com pouco espaço justamente na ORACLE_HOME do banco, onde também ficam localizados os arquivos de de traces e logs :









É claro que no meu caso aqui poderiamos até pensar no seguinte, como estamos trabalhando em LVM, se eu tiver espaço para expandir meu disco sem problemas correto? Errado. Isso é uma idéia equivocada, pois gera desperdicio de recurso de disco, pois se cada vez que eu obtiver um erro por falta de espaço eu incrementar meu file system mais e mais, só estarei alimentando um monstro e atacando o problema e não a causa.

É obvio que no meu ambiente controlado e não produtivo, a geração de logs é infinitamente menor do que a de um ambiente transacional , onde temos a todo momento a aplicação e os desenvolvedores testando suas queries e seus processos até chegarem a um denominador comum. Enquanto isso nos bastidores nos arquivos são gerados e consumindo cada vez mais espaço.

O QUE FAZER ENTÃO?

Dentro do diretório DIAG mostrado na figura acima há outros demais subdiretórios contendo os arquivos propriamente ditos :





No nosso ambiente o vilão é esta basta denominada RDBMS, onde ficam outros demais subdiretórios que contém efetivamente cada tipo de arquivo :





Temos então identificados nossos vilões de consumo, onde via de regra serão sempre os mesmos a consumirem mais e mais espaço, que são os diretórios denominados ALERT e TRACE, os de INCIDENT costumam dar trabalho também, mais são infinitamente menores que os demais.

Bem, para não me demorar muito e ficar muito extenso o post, quebrarei em mais um pedaço para apresentar á vocês a solução para controlar a geração dos logs e também a limpeza dos mesmos.

Obrigado por acompanharem o canal, espero que todos tenham gostado até aqui. Sucesso SEMPRE!!!