SQL Server 2014
我有一个共享的季度报告计划,计划于1月,4月,7月和10月1日发布。但是,报告于8月1日发布。我检查了报表服务器,并确认未将计划设置为在8月运行,但是实际的计划表显示报表确实在8月1日运行。在SQL Agent作业历史记录中,仅运行一次,该运行是8月1日,由服务帐户执行。订阅显示下一个运行日期是10月1日。
因此,我不知所措,为什么报告未按计划进行。系统似乎确认报告已正确安排,但系统似乎已超出计划。我还可以执行其他任何故障排除步骤吗?
更新(屏幕截图):
答案 0 :(得分:1)
在评论中我们进行讨论之后,我想有人想过将要订阅的原始作业重命名为人类可读的名称,并且在离开公司之前没有告诉您。要找到该作业,您当然可以遍历SQL Server Agent的作业列表,并查看是否可以找到一个名称与报告/订阅有关的作业。如果这还不够,请在SSMS(在SQL Server Agent下)中打开 Job Activity Monitor (工作活动监视器),并查找最后一次在电子邮件发出时于8月1日执行的作业。如果这样做不成功,并且手动进行的工作太多,建议您执行以下操作:
然后,在 msdb 数据库中使用类似的查询,在SQL Server Agent的作业步骤中找到此<SubscriptionID>
:
SELECT j.[name] AS job_name, s.step_name
FROM dbo.sysjobs j
INNER JOIN dbo.sysjobsteps s ON j.job_id = s.job_id
WHERE s.command like '%<SubscriptionID>%'
(用您的订阅的 SubscriptionID 替换<SubscriptionID>
)。
我猜想您将通过该查询找到(至少)2个工作,一个与您的季度计划有关,一个计划于8月1日运行,其中两个都与在ReportServer中执行的工作步骤命令EXEC dbo.AddEvent @EventType='TimedSubscription', @EventData='<SubscriptionID>'
类似数据库(使用您的<SubscriptionID>
)。做第二件事是合适的。