SQL Server SSIS 發生錯誤訊息 找不到指定的模組 cannot be run because the SSIS subsystem failed to load. The job has been suspended

這篇文章,將說明 SQL Server SSIS 發生 錯誤訊息 找不到指定的模組 cannot be run because the SSIS subsystem failed to load. The job has been suspended,
如何排除障礙以及觀察有可能發生的原因。

這篇文章,將說明 SQL Server SSIS 發生 錯誤訊息 找不到指定的模組 cannot be run because the SSIS subsystem failed to load.  The job has been suspended,
如何排除障礙以及觀察有可能發生的原因。

 

情境:

在進行資料庫檔案的移轉、資料庫版本的升級或機器的移轉,當進行排程的SSIS發生 錯誤訊息
找不到指定的模組 cannot be run because the SSIS subsystem failed to load.  The job has been suspended。

 

解決步驟:

參考 http://support.microsoft.com/kb/914171/en-us

Error message when you restore or attach an msdb database or when you change the syssubsystems table in SQL Server 2005: "Subsystem % could not be loaded"

 

進行以下步驟,主要內容為修復 syssubsystems 資料表。

use msdb
go
delete from msdb.dbo.syssubsystems
exec msdb.dbo.sp_verify_subsystems 1
go

 

說明:

1. msdb.dbo.syssubsystems 記錄相關Agent啟動資料,有可能是對應啟動的 .dll 位置錯誤,下圖為 syssubsystems 內容資料。

image

2.在仔細去看 msdb.dbo.sp_verify_subsystems  的 SP 內容,你會發現他是由 Register 裡面讀取SQL的Rootpath,在寫入 msdb.dbo.syssubsystems

image

image

 

 

結果:

在進行 msdb.dbo.sp_verify_subsystems  之前,你可以先比較本來的 syssubsystems  與修改後的差別,就此來了解是否為修改到路徑,而造成此狀況的發生,
再重新啟動 SQL Server Agent Service ,SSIS 相關排程則可順利運作。

 

 

參考資料:

 

syssubsystems (Transact-SQL)

包含所有可用的 SQL Server Agent Proxy 子系統的相關資訊。syssubsystems 資料表儲存在 msdb 資料庫中

http://technet.microsoft.com/zh-tw/library/ms174368.aspx

 

Error message when you restore or attach an msdb database or when you change the syssubsystems table in SQL Server 2005: "Subsystem % could not be loaded"

http://support.microsoft.com/kb/914171/en-us