Você já se perguntou onde o arquivo .xel é salvo quando você cria uma nova sessão de Evento Estendido e não especifica o caminho completo (apenas o nome do arquivo)? Neste artigo, exploraremos a localização dos arquivos de Eventos Estendidos do SQL Server e como encontrá-los.
Ao criar uma sessão de Evento Estendido, você pode ter percebido que só precisa fornecer o nome do arquivo sem especificar o caminho completo. Por exemplo:
CREATE EVENT SESSION [TestFileTarget] ON SERVER
ADD EVENT sqlserver.sql_statement_completed
ADD TARGET package0.event_file
(
SET filename=N'TestFileTarget',max_file_size=(2)
)
WITH (STARTUP_STATE = ON)
Mesmo ao gerar o script da sessão, o nome do arquivo é a única informação fornecida. Então, onde o arquivo é realmente salvo?
Para descobrir a localização do arquivo de Evento Estendido, precisamos iniciar a sessão e consultar a DMV sys.dm_xe_sessions. Aqui está o trecho de código T-SQL para recuperar o caminho do arquivo:
;WITH xeTargets
AS
(
SELECT
s.name
, t.target_name
, CAST(t.target_data AS xml) AS xmlData
FROM
sys.dm_xe_session_targets AS t
JOIN sys.dm_xe_sessions AS s
ON s.address = t.event_session_address
)
SELECT
xt.name
, xt.target_name
, xNodes.xNode.value('@name', 'varchar(250)') AS filePath
, xt.xmlData
FROM xeTargets AS xt
CROSS APPLY xt.xmlData.nodes('.//File') xNodes (xNode)
Ao executar essa consulta, você obterá o caminho do arquivo de Evento Estendido.
É importante observar que o caminho do arquivo pode variar dependendo da instância do SQL Server. No entanto, na maioria dos casos, o arquivo de Evento Estendido é salvo na mesma pasta do arquivo de log de erros.
Se você deseja alterar a localização do arquivo de log de erros, pode fazer isso modificando o parâmetro de inicialização do SQL Server. Aqui está um trecho da documentação:
O caminho do log de erros é um parâmetro de inicialização do SQL Server. Se você não fornecer essa opção, os parâmetros do registro existentes serão usados.
Para alterar o caminho do arquivo de log de erros, você pode usar o SQL Server Configuration Manager. Clique com o botão direito no serviço do SQL Server, selecione Propriedades e vá para a guia Parâmetros de Inicialização. Especifique o novo caminho da pasta para o arquivo de log de erros, certificando-se de incluir o nome do arquivo sem a extensão. Observe que a alteração do caminho do arquivo de log de erros requer a reinicialização do serviço do SQL Server.
Após alterar o caminho do arquivo de log de erros, você pode verificar a localização do arquivo de Evento Estendido executando a consulta T-SQL anterior. O arquivo de Evento Estendido agora deve ser salvo na nova pasta especificada para o arquivo de log de erros.
Vale mencionar que os arquivos antigos de log de erros e de Evento Estendido não são excluídos automaticamente quando você altera o caminho do arquivo de log de erros. Portanto, pode ser necessário excluir manualmente os arquivos antigos para liberar espaço em disco.
Por fim, se você não tiver o SQL Server instalado localmente, ainda poderá testar a localização do arquivo de Evento Estendido usando o Docker. Basta executar um contêiner Docker com a imagem do SQL Server e seguir as mesmas etapas mencionadas anteriormente para encontrar a localização do arquivo.
Compreender a localização dos arquivos de Eventos Estendidos do SQL Server é essencial para gerenciar e analisar dados de eventos. Ao saber onde esses arquivos são salvos, você pode acessar e analisar facilmente os eventos capturados.
Obrigado por ler!