SQL Server代理作业成功完成但未执行SSIS包求助
解决方案:SQL Server代理作业显示成功但未执行SSIS包
我之前碰到过和你完全一样的问题,在SQL Server 2012上折腾了好几天才搞定,给你几个实用的排查和解决方向:
检查SQL Server代理账户的SSIS权限
手动执行包时用的是你自己的账户,权限肯定够,但SQL Server代理服务的运行账户可能缺SSISDB的权限。你可以给这个账户添加ssis_admin服务器角色,或者用下面的脚本直接授予必要权限:USE SSISDB; -- 替换成你的代理账户 DECLARE @AgentAccount NVARCHAR(128) = N'DOMAIN\YourAgentAccount'; GRANT EXECUTE ON OBJECT::[catalog].[execute_package] TO @AgentAccount; GRANT READ ON OBJECT::[catalog].[folders] TO @AgentAccount; GRANT READ ON OBJECT::[catalog].[projects] TO @AgentAccount; GRANT READ ON OBJECT::[catalog].[packages] TO @AgentAccount;核对作业步骤的配置细节
别小看拼写错误!作业步骤里的包路径、项目名称、文件夹名称一定要和SSISDB里的完全一致,哪怕是大小写(虽然SQL Server不区分,但配置里写错了真的会导致找不到包)。另外,检查步骤的「运行方式」是不是选了正确的代理账户,别选了一个没权限的代理。深挖SSISDB的执行日志
作业显示成功不代表SSIS包真的启动了,去SSISDB的执行日志里找真相:- 在SSMS里展开「Integration Services Catalogs」→「SSISDB」→你的目标文件夹→项目→包
- 右键包选择「查看报告」→「所有执行」
- 找到代理作业触发的那条执行记录,查看详细日志,里面可能藏着代理没捕获到的错误(比如权限不足、包参数错误)
查看作业历史的详细日志
右键作业选「查看历史记录」,然后点击每个步骤的「查看日志」,别只看状态是成功,里面的详细信息可能会提示“无法访问SSIS目录”之类的隐藏问题。升级SQL Server 2012的累积更新
SQL Server 2012早期版本有不少SSIS代理相关的bug,比如CU补丁之前的版本会出现作业成功但不执行包的情况。建议升级到最新的累积更新(比如CU15及以上),很多这类问题都是补丁直接解决的。
内容的提问来源于stack exchange,提问作者jderekc
相关产品推荐
相关产品推荐

