SQL Server Administração

Como Armazenar Mensagens de Saída Mais Longas do SQL Agent?

Como Armazenar Mensagens de Saída Mais Longas do SQL Agent?

Ao trabalhar com o SQL Agent, às vezes é difícil determinar por que uma tarefa falhou. Veja como visualizar toda a mensagem de retorno da execução do trabalho.

Para cada etapa de trabalho, o SQL Server fornece uma mensagem, mas nem sempre é fácil determinar exatamente o que estava ocorrendo durante essa etapa. A mensagem padrão salva no histórico do trabalho é de 1024 caracteres.

Na maioria dos casos, isso pode ser suficiente, mas se você tiver um processo de execução demorado, poderá precisar armazenar mais de 1024 caracteres.

Existe alguma maneira de obter informações adicionais dentro do histórico de trabalho para ajudar a solucionar problemas, bem como apenas saber o que ocorreu?

Como visualizar toda a mensagem de retorno da execução – Solução

No SQL Server 2005 e posterior, você pode registrar a saída da tarefa do SQL Agent adicional além dos 1024 caracteres armazenados na tabela msdb.dbo.sysjobhistory. Por padrão, esse registro avançado não está ativado, é algo que você precisa ativar para cada etapa da tarefa.

Vamos considerar, por exemplo, que estamos executando comandos DBCC CHECKDB para vários bancos de dados.

Esse comando fornece muitos dados de saída, a menos que você use a opção WITH NO_INFOMSGS.

Se você não estiver usando a opção NO_INFOMSGS, a saída do comando preencherá os 1024 caracteres rapidamente. Assim, você poderá ver apenas a parte da saída na mensagem do histórico de tarefas.

Aqui está uma captura de tela do histórico de tarefas para a etapa que fez um DBCC CHECKDB. Como você pode ver, obtemos apenas uma parte da saída do comando.

SQL

Para permitir que dados adicionais sejam registrados, você precisa ativar algumas configurações para cada etapa do trabalho. Para isso, edite a etapa da tarefa e selecione a guia Avançado.

Nesta tela você precisa habilitar tanto a “Log to table” como “Include step output in history”.

Depois que fizermos essas alterações e executarmos isso novamente, veremos a mesma mensagem curta.

SQL

Para ver as informações registradas adicionais, você precisa usar este procedimento armazenado sp_help_jobsteplog ou pode consultar a tabela msdb.dbo.sysjobstepslog diretamente.

Se executarmos este comando em uma janela de consulta (test2 é o nome do trabalho):

EXEC dbo.sp_help_jobsteplog @job_name = N'NomeDoSeuJob';
GO

Como você pode ver, agora podemos obter a mensagem de saída inteira, pois a saída no log do sysjobsteps é armazenada como um nvarchar (max) em vez de um nvarchar (1024), como em sysjobhistory.

Resumo

Neste post, eu compartilhei com vocês como visualizar toda a mensagem de retorno da execução do Job quando a saída possui mais de 1024 caracteres.

Esta dica é útil para você obter um histórico adicional de etapas da tarefa e apenas alguns cliques podem fornecer mais detalhes.

Você conhece outra maneira de conseguir essa aumentar esse output? Comente abaixo!

Um grande abraço a todos!

Se você está precisando de uma consultoria SQL Server remoto na sua empresa clique aqui!

Como Armazenar Mensagens de Saída Mais Longas do SQL Agent?
The following two tabs change content below.

Wesley Mota

DBA SQL Server
Profissional graduado em Banco de Dados e Sistemas de Informação com mais de 7 anos de experiência em empresas de software. Certificado MCSA Microsoft SQL Server possui intensa vivência em administração de banco de dados, Tunning, Performance SQL Server, levantamento de melhorias e monitoramento de banco de dados e servidores SQL Server. Consultoria SQL Server em diversos clientes no Brasil e ao redor do mundo. Escritor no blog dbasqlserverbr.com.br/blog. Onde compartilha conhecimento, experiências e dicas de performance para DBAs SQL Server. Conhecimentos em Oracle e ambientes de alta disponibilidade. Desenvolvimento de softwares web e mobile.Gerenciamento de equipe e projetos.

Latest posts by Wesley Mota (see all)