Consultando Logs de erro do SQL Server

Andei um tempo sumido, sem publicar novos post, pois estava me preparando para realizar as provas de upgrade para a certificação MCSA SQL Server 2012 (mission complete). Ainda não finalizei o objetivo final, upgrade para MCSE e após, atualizar para o MCSE SQL Server 2014, porém agora posso me dar uma “folguinha” e adicionar alguns posts sobre assuntos que recentemente precisei aplicar no trabalho.
Consultar logs de erro não é algo difícil, basta abrir o Log Viewer e visualizamos os logs ativo e os archives, porém imagine que você está querendo buscar por um evento em específico, e no seu log ativo há mais de 10.000 registros ? nesse caso a tarefa se torna mais difícil (e chata, convenhamos), porém como dizem os mais sábios: “para tudo há solução, apenas não há para a morte”. Para facilitar esse tipo de consulta, existe uma extended stored procedure, não documentada, que faz a consulta dos registros do log, permitindo criar filtros para listar apenas os eventos que está sendo buscado: xp_readerrorlog .
Essa stored procedure é parametrizada, permitindo que possa ser consultado logs específicos do SQL Server (SQL Server logs ou SQL Server Agent error logs), além de permitir que seja definido qual o log (ativo ou archive) e a string de busca.

A sintaxe da stored procedure é a seguinte:

EXEC xp_readerrorlog  @P1, @P2, @P3, @P4

@P1 => tipo de dado integer. Esse parâmetro define em qual arquivo de log do SQL será realizada a consulta. O valor default é 0, significando que ele irá consultar o log ativo;
@P2 => tipo de dado integer. Esse parâmetro define em qual log será realizada a consulta: SQL Server Logs ou SQL Server Agent Error Logs. Para logs do SQL Server o valor é 1, para logs do SQL Server Agent o valor é 2. O valor default é NULL, significando que será consultado o SQL Server Logs;
@P3 => tipo de dado varchar(255). Esse parâmetro define a string que será utilizada para filtrar os eventos dos logs. O valor default é Null;
@P4 => tipo de dado varchar(255). Esse parâmetro define uma segunda string, a ser utilizada para filtrar os eventos dos logs. O valor default é Null.

Vamos a exemplos:

Consultar o log ativo, no SQL Server Logs, para saber se ocorreu tentativas de conexão à instância, usando a conta do user sa:

EXEC xp_readerrorlog 0, 1, 'password', 'sa'

O resultado da consulta é listado abaixo:

xp_readerrorlog_sa

Não é necessário definir todos os parâmetros para execução da procedure. Se for omitido, ele irá retornar todos os registros no log ativo.

Abraços e até a próxima.

Anúncios

5 comentários sobre “Consultando Logs de erro do SQL Server

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s