Galera,
Dando continuidade a nossa série DBA de Guerrilha, hoje falaremos sobre a ferramenta db2diag, utilizada para navegar pelo seu arquivo de diagnóstico do DB2 LUW.
Você sabe qual a utilização da ferramenta db2diag?
A ferramenta db2diag é direcionada aos DBAs, Administradores do Sistema e também ao suporte IBM, facilitando assim a leitura e filtro do arquivo db2diag.log.
E o db2diag.log?
A principal função do db2diag.log é auxiliar na resolução de problemas, ou seja, todos os erros do sistema DB2 ou qualquer ação que leve a causar um erro é então registrada neste arquivo.
Para configurarmos o db2diag.log temos que apenas trabalhar com 3 parâmentros a nível de instância, são eles:
–> diagsize: esse parametro determina o tamanho do arquivo db2diag.log. Com um valor 0 (zero – default) nenhum tamanho é estipulado e ele irá crescer livre, leve e solto. Qualquer valor acima de zero, tornará o arquivo db2diag.log rotativo/circular (10 arquivos do db2diag.log – padrão e não tem alteração) e com tamanhos definidos. Por exemplo, se eu disser que quero atualizar este parâmetro com o valor de 100, então cada arquivo db2diag.log terá no máximo 90MB, pois 10MB é reservado para um outro arquivo chamado instance notification log (nomedainstance.nfy) que irá guardar mensagens de manutenção e administração do banco de dados e instância. As mesmas informações que o instance notification log possui o db2diag.log também, a diferença é que o arquivo db2diag.log pode armazenar maiores informações e com maior nível de detalhamento.
Para atualizar este paramêtro utilize o comando: db2 “update dbm cfg using diagsize 100”
–> diagpath: onde os arquivos ou arquivo db2diag.log será criado e armazenado.
Para atualizar este parâmetro utilize o comando: db2 “update dbm cfg using diagpath E:DB2DIAG”
–> diaglevel: pode receber valores de 0 a 4. Quanto maior o valor configurado mais informações serão gravadas no arquivo db2diag.log. O nível 4 é apenas recomendado em casos de problemas graves ou tuning de ambiente.
Para atualizar este parâmetro utilize o comando: db2 “update dbm cfg using diaglevel 2 immediate”
Mas como utilizamos a ferramenta db2diag?
A resposta é simples, digitando db2diag. Fazendo isso, a ferramenta db2diag procurará o arquivo db2diag.log e o abrirá completamente. “Ah mas para isso eu utilizo o Vi ou qualquer editor de texto, também concordo!!!” Então vamos utilizá-lo inteligentemente…kkkkkk
Segue um exemplo:
Nossa mas o que esse comando faz? Pois bem, primeiramente eu quero extrair do db2diag.log todos os registros na data especificada, que possuam nível de mensagem Severe/Error e também a partição onde essa mensagem foi gerada. Na segunda parte do comando (após o pipe) quero trazer o pid do processo no sistema operacional, a thread do sistema (tid) e a instância que o erro pertence e caso exista alguma mensagem detalhando o problema ele também trará.
O pipe (|) serve para concatenar os comandos, enquanto o (n) serve para pular a linha.
Veja como ficará o seu output.
Prático não acha? Perceba que o horário é o seu divisor de mensagens.
Teste o comando e veja as facilidades de utilizá-lo. Afinal a prática leva a perfeição. 🙂
DICA: Você também pode ler o db2diag.log através da view administrativa PDLOGMSGS_LAST24HOURS ou da table function PD_GET_LOG_MSGS.
Faça um teste utilizando estes dois SQLs abaixo. Eles irão acessar o seu db2diag.log.
Leia mais sobre a ferramenta db2diag no DB2 INFOCENTER.
Lembrando a todos que qualquer duvida estamos à disposição para auxiliá-los.