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以獲得主動操作,這是一種操作,因爲您可以多次執行單個作業。 –