获取 SQL 代理作业的详细输出

tor*_*yan 17 sql-server sql-server-agent

我们有一个 SQL Server 代理作业,它运行维护计划以重新索引服务器上的所有数据库。最近这失败了,但工作历史记录没有提供足够的信息来诊断问题。

在作业历史记录中,它指出作业失败。该作业由用户 foo\bar 调用。运行的最后一步是第 1 步(重建索引)。

在详细信息窗口中有以下形式的多条消息:

Executing query "ALTER INDEX [something] ON [a...".: 0% complete  End Progress  Progress: 2015-03-15 22:51:23.67     Source: Rebuild Index Task
Run Code Online (Sandbox Code Playgroud)

正在运行的 SQL 语句被截断,我假设语句的输出也被截断,从而使我无法确定哪个特定语句失败以及为什么失败。有没有办法提取这些消息的全文?

Kin*_*hah 21

有没有办法提取这些消息的全文?

您可以通过两种方式实现它 - 进入作业步骤并选择高级选项卡:

一种。输出到文件(<== 我的首选方法)

在此处输入图片说明

湾 “记录到表”和“在历史记录中包含步骤输出”(<== 您需要msdb..sysjobhistory长期修剪,因为消息存储为nvarchar(max)而不是nvarchar(1024)

在此处输入图片说明

为了查看额外的记录信息,您需要使用此存储过程 sp_help_jobsteplog 或者您可以msdb.dbo.sysjobstepslogs直接查询表。

更多信息在这里