我正在检查一份SSIS作业执行报告,它向我显示以下报告:
最近的一个成功了,但是当你看一下ID:217583时,它仍在运行并且从未完成(持续时间不断增加),当我在sql server agent中检查作业活动时,该执行应该在之前失败,我之所以说这是因为开始时间匹配。这是sql server agent中的作业历史记录:
所以我认为这个工作执行失败但是由于一些神秘的原因,它仍然在后台以“正在运行”状态显示(或运行)。
有人有什么想法吗?我尝试EXEC msdb..sp.stop_jobs
命令,但找不到该作业ID。
有谁能告诉我发生了什么事?这项工作还在其他地方运行吗?如果是这样,如何找到该作业执行并停止它?或者如何让报告不再显示这个奇怪的记录?
提前谢谢:)
答案 0 :(得分: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包列表,并在必要时请求包停止。
查看正在运行的包列表
您可以在“Active Operations”对话框中查看服务器上当前正在运行的软件包列表。有关更多信息,请参阅“活动操作”对话框。 有关可用于查看正在运行的包列表的其他方法的信息,请参阅以下主题。
Transact-SQL访问
要查看服务器上运行的软件包列表,请查询视图,catalog.executions(SSISDB数据库)以查找状态为2的软件包。 通过托管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名称空间及其类。