SQL Server 2014
我有一个共享的季度报告时间表,定于 1 月、4 月、7 月和 10 月的第一天发布。但是,该报告于 8 月 1 日发布。我检查了报表服务器并确认该计划未设置为在 8 月运行,但实际计划表显示该报表确实在 8 月 1 日运行。在 SQL 代理作业历史记录中,只有一次运行,即 8 月 1 日,由服务帐户执行。订阅显示下一次运行日期是 10 月 1 日。
所以,我不明白为什么报告没有按计划完成。系统似乎确认报告已正确安排,但系统似乎未按计划运行。我还可以遵循其他任何故障排除步骤吗?
更新(截图):
经过我们在评论中的讨论,我猜想有人想将原来的订阅工作重命名为人类可读的名称,并且在他离开公司之前没有告诉你。要找到该作业,您当然可以浏览SQL Server代理的作业列表,看看是否可以找到名称与您的报告/订阅有关的作业。如果这还不够,请打开 SSMS 中的作业活动监视器(在 SQL Server 代理下)并查找上次在 8 月 1 日电子邮件发出时执行的作业。如果这不成功并且有太多作业需要手动完成,我建议执行以下操作:
然后,在
msdb数据库中使用如下查询,在 SQL Server 代理的作业步骤中找到此
<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 日运行,两者都使用像
EXEC dbo.AddEvent @EventType='TimedSubscription', @EventData='<SubscriptionID>'
这样的 jobstep 命令在 ReportServer 数据库中执行(使用您的<SubscriptionID>
)。做任何适合第二份工作的事情。