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:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”ZGIyZGlhZyAtdGltZSAyMDEyLTA4LTIzIC1ub2RlICIwIiAtbGV2ZWwgIlNldmVyZSwgRXJyb3IiIHwKZGIyZGlhZyAtZm10ICJUaW1lOiAle3RzfSBQYXJ0aXRpb246ICVub2RlIE1lc3NhZ2UgTGV2ZWw6ICV7bGV2ZWx9Cm4gUGlkOiAle3BpZH0gVGlkOiAle3RpZH0gSW5zdGFuY2U6ICV7aW5zdGFuY2V9bk1lc3NhZ2U6IEB7bXNnfW4i” hover_enabled=”0″]ZGIyZGlhZyAtdGltZSAyMDEyLTA4LTIzIC1ub2RlICIwIiAtbGV2ZWwgIlNldmVyZSwgRXJyb3IiIHwKZGIyZGlhZyAtZm10ICJUaW1lOiAle3RzfSBQYXJ0aXRpb246ICVub2RlIE1lc3NhZ2UgTGV2ZWw6ICV7bGV2ZWx9Cm4gUGlkOiAle3BpZH0gVGlkOiAle3RpZH0gSW5zdGFuY2U6ICV7aW5zdGFuY2V9bk1lc3NhZ2U6IEB7bXNnfW4i[/et_pb_dmb_code_snippet]

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.

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”ZGIyICJTRUxFQ1QgKiBGUk9NIFNZU0lCTUFETS5QRExPR01TR1NfTEFTVDI0SE9VUlMgV0hFUkUgTVNHU0VWRVJJVFkgPSAnQycgT1JERVIgQlkgVElNRVNUQU1QIERFU0MiCmRiMiAiU0VMRUNUICogRlJPTSBUQUJMRShQRF9HRVRfTE9HX01TR1MoQ1VSUkVOVF9USU1FU1RBTVAg4oCTIDcgREFZUykpIEFTIFQgV0hFUkUgSU5TVEFOQ0VOQU1FID0gJ0RCMicgQU5EIERCTkFNRSA9ICdTQU1QTEUnIE9SREVSIEJZCiBUSU1FU1RBTVAgQVNDIg==” hover_enabled=”0″]ZGIyICJTRUxFQ1QgKiBGUk9NIFNZU0lCTUFETS5QRExPR01TR1NfTEFTVDI0SE9VUlMgV0hFUkUgTVNHU0VWRVJJVFkgPSAnQycgT1JERVIgQlkgVElNRVNUQU1QIERFU0MiCmRiMiAiU0VMRUNUICogRlJPTSBUQUJMRShQRF9HRVRfTE9HX01TR1MoQ1VSUkVOVF9USU1FU1RBTVAg4oCTIDcgREFZUykpIEFTIFQgV0hFUkUgSU5TVEFOQ0VOQU1FID0gJ0RCMicgQU5EIERCTkFNRSA9ICdTQU1QTEUnIE9SREVSIEJZCiBUSU1FU1RBTVAgQVNDIg==[/et_pb_dmb_code_snippet]

Leia mais sobre a ferramenta db2diag no DB2 INFOCENTER.

Lembrando a todos que qualquer duvida estamos à disposição para auxiliá-los.