0

我检查一个SSIS作业执行报告,该报告显示我以下报告:SQL Server作业活动(作业失败,但在作业活动历史记录仍显示“运行”状态)

enter image description here

最最近一个成功了,但是当你看看ID:217583时,它仍然在运行,并且从未完成(持续时间不断增加),并且当我检查sql server代理中的作业活动时,该执行应该失败,之所以我说是因为开始的时间相匹配。这是在SQL Server代理作业历史:

enter image description here

所以我认为这作业执行失败,但对于有些神秘的原因,它仍然显示(或运行)与“跑步”状态的背景。

有没有人有任何想法?我尝试使用​​命令,但找不到该作业ID。

有人可以告诉我发生了什么事吗?这份工作还在其他地方运行吗?如果是这样,如何找到那份工作执行并停止它?或者如何让报告不再显示这个奇怪的记录?

THX提前:)

+0

这个包是从SSIS目录运行的吗? –

+0

它是运行已部署的ssis包的sql server代理中的计划作业 – LONG

+0

SSIS包存储在哪里? –

回答

1

如果您在执行这个包从SSISDB工作,你可以按如下方式使用停止操作过程。

USE SSISDB 
GO 

EXEC [catalog].[stop_operation] 217583 

https://msdn.microsoft.com/en-us/library/hh213131.aspx这里是停止操作的参考。如果此链接断开,...

SSISDB数据库将执行历史存储在内部表中,用户不可见。但是,它通过公共视图显示您需要的信息,您可以查询。它还提供了可以调用以执行与包相关的常见任务的存储过程。

通常,您可以在SQL Server Management Studio中的服务器上管理Integration Services对象。但是,您也可以直接查询数据库视图并调用存储过程,或编写调用托管API的自定义代码。 SQL Server Management Studio和托管API查询视图并调用存储过程以执行其许多任务。例如,您可以查看服务器上当前正在运行的Integration Services包列表,并在必要时请求程序包停止。

查看正在运行的包

您可以查看当前在活动操作对话框,在服务器上运行包的列表清单。有关更多信息,请参阅“活动操作”对话框。 有关可用于查看正在运行的程序包列表的其他方法的信息,请参阅以下主题。

的Transact-SQL访问

要查看服务器上运行的包的列表,查询那些有2 编程访问状态包视图,catalog.executions(SSISDB数据库)通过托管API 请参阅Microsoft.SqlServer.Management.IntegrationServices命名空间及其类。

停止正在运行的程序包 您可以要求运行包停止在活动操作对话框。有关更多信息,请参阅“活动操作”对话框。 有关可用于停止正在运行的程序包的其他方法的信息,请参阅以下主题。

的Transact-SQL访问

要停止在服务器上运行的程序包,调用存储过程,catalog.stop_operation(SSISDB数据库)。 通过托管API编程访问 请参阅Microsoft.SqlServer.Management.IntegrationServices命名空间及其类。

查看已运行

要查看已在Management Studio中运行包的历史,可以使用所有执行报告软件包的历史。有关“所有执行”报告和其他标准报告的更多信息,请参阅Integration Services服务器的报告。 有关可用于查看运行包的历史记录的其他方法的信息,请参阅以下主题。

的Transact-SQL访问

要查看有关已运行包的信息,查询视图,catalog.executions(SSISDB数据库)。 通过托管API编程访问 请参阅Microsoft.SqlServer.Management.IntegrationServices命名空间及其类。

+0

是的!有用!你能多解释一下吗?或者有没有关于这方面的参考?顺便说一下,ID指向操作ID而不是作业ID? – LONG

+0

我们如何才能过滤所有这些工作?我确信这不是唯一一个存在这样的问题:(( – LONG

+0

)我已经用MSDN的文本更新了我的答案。基本上,您运行的报告显示SSISDB中的数据。您可以编辑报告或在SSISDB表中写入sql以获得主动操作,这是一种操作,因为您可以多次执行单个作业。 –