Temos um trabalho do SQL Server Agent que executa um plano de manutenção para reindexar todo o banco de dados no servidor. Recentemente, isso falhou, mas o histórico do trabalho não está fornecendo informações suficientes para diagnosticar o problema.
No histórico do trabalho, ele afirma que o trabalho falhou. O trabalho foi chamado pelo usuário foo \ bar. A última etapa a ser executada foi a etapa 1 (Índice de reconstrução).
Na janela de detalhes, há várias mensagens no seguinte formato:
Executing query "ALTER INDEX [something] ON [a...".: 0% complete End Progress Progress: 2015-03-15 22:51:23.67 Source: Rebuild Index Task
A instrução SQL que está sendo executada está truncada e eu presumo que a saída da instrução também esteja truncada, impedindo que eu seja capaz de identificar qual instrução específica falhou e por quê. Existe alguma maneira de extrair o texto completo dessas mensagens?
fonte
Respostas:
Você pode conseguir isso de duas maneiras - Vá na etapa do trabalho e selecione a guia Avançado:
uma. Saída para um arquivo (<== Meu método preferido)
b. "Registrar na tabela" e "Incluir saída da etapa no histórico" (<== Você precisa cortar a
msdb..sysjobhistory
longo prazo, pois as mensagens são armazenadas emnvarchar(max)
vez denvarchar(1024)
)Para ver as informações adicionais registradas, é necessário usar este procedimento armazenado sp_help_jobsteplog ou você pode consultar a
msdb.dbo.sysjobstepslogs
tabela diretamente.Mais informações aqui
fonte
sysjobstepslogs
. Essa foi a recomendação da maioria das discussões online sobre esse problema. Mas o método (a), saída para um arquivo, NÃO teve esse problema: os arquivos de texto estão me mostrando todo o registro de etapas do trabalho, finalmente sem truncamento! (No meu caso, minhas etapas de trabalho sãoDTEXEC
comandos, executando pacotes SSIS.) Apenas desvantagem: somente a última execução é vista, a menos que seja anexada ao arquivo. Em vez de anexar, optei por viver com truncamento em execuções anteriores.Você pode obter texto completo:
select properties
step
e clique noedit
botãoadvanced
. Aqui você pode ver o caminho do log.Agora é simples seguir o caminho.
fonte