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.
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.
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!
Wesley Mota
Latest posts by Wesley Mota (see all)
- The Ultimate Guide to Gry Online Ruletka - novembro 14, 2024