Veja como Filtrar em todos os errorlogs do SQL Server.
Filtrar em todos os errorlogs do SQL Server de uma forma mais prática usando T-SQL é mais simples do que imagina. Todos nós sabemos que as procedures xp_readerrorlog and sp_readerrorlog são muito úteis para buscar essas informações nos arquivos de log do SQL Server certo? Porém essas procedures permitem que busquemos informações em apenas um arquivo.
O que fazer se precisamos buscar em vários arquivos ou em todos os errrorlogs e agent logs do SQL Server de uma única vez?
Exatamente é o que essa procedure que vou colocar abaixo faz. Veja a seguir
USE master GO CREATE PROCEDURE dbo.uspFiltrarEmTodosErrorLogs (@TipoDeLog INT = 1, @Filtro NVARCHAR (4000) = '') AS BEGIN -- Tabela para listar todos os logs DECLARE @ListaDosLogs TABLE (LogNumber INT, StartDate DATETIME, SizeInBytes INT) -- Colocar os resultados na tabela DECLARE @Logs TABLE (LogDate DATETIME, ProcessInfo NVARCHAR (4000), Informacao NVARCHAR (4000)) -- Guardando os resultados INSERT INTO @ListaDosLogs EXEC xp_enumerrorlogs @TipoDeLog -- Iterar em todos os logs e coletar todas as linhas de log DECLARE @idx INT = 0 WHILE @idx <= (SELECT MAX (LogNumber) FROM @ListaDosLogs) BEGIN INSERT INTO @Logs EXEC xp_readerrorlog @idx -- Numero Do Log , @TipoDeLog -- 1=SQL Server log, 2=SQL Agent log , @Filtro -- Filtro , @Filtro SET @idx += 1 END -- Retornar os resultados SELECT * FROM @Logs ORDER BY LogDate DESC END GO
Abaixo estão exemplos de execução dos scrtips:
Use master Go Exec dbo.uspFiltrarEmTodosErrorLogs 1,'ERROR' Go Exec dbo.uspFiltrarEmTodosErrorLogs 2,'ERROR' Go
Espero que gostem, não esqueçam de compartilhar com os amigos!
Grande abraço!
Wesley Mota
Latest posts by Wesley Mota (see all)
- The Ultimate Guide to Gry Online Ruletka - novembro 14, 2024