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