SQL Agent 运行的 SSIS 包卡住了 7 天,没有超时。我怎样才能防止这种情况发生?

问题描述 投票:0回答:1

我有一个 SSIS 包,它使用 ODBC 源 -> OLE DB 目标提取数据。非常简单的包,里面只有一些工具。通常,该包需要约 45 分钟才能复制 1400 万行。在作业日志中,它似乎卡在验证上,这意味着它甚至没有开始执行,因此理论上连接超时在这里没有帮助。

是否有我可以构建的通用 SSIS 包超时选项?

enter image description here

ssis ssms sql-agent-job
1个回答
0
投票

最简单的方法是创建第二个监视作业来监视/检查此主要作业。

在此监控作业中,您可以将计划运行日期/时间设置为在您预期主要作业完成后 XXX 分钟的时间开始/运行(并提供一些额外的分钟以确保您预期的最长运行时间)完成)。

所以你的主要工作从凌晨 1 点开始,你预计它会在上午 130 点完成。我会将此监视器/终止作业设置为运行,例如上午 230 点(给您额外的一个小时,以防万一它运行时间更长)。

然后您只需让监视器作业运行此脚本:

EXEC msdb.dbo.sp_stop_job @job_name = 'JobNameToKill'

您也可以添加此内容,这样您就知道该工作已被终止,并且您将收到一封电子邮件:

EXEC msdb.dbo.sp_send_dbmail 
                    @recipients = 'EmailAddress',
                    @subject = 'EmailSubject',
                    @body = 'EmailBody',
                    @importance = 'NORMAL',
                    @body_format = 'HTML';
© www.soinside.com 2019 - 2024. All rights reserved.