设置SQL代理作业时,可以选择"SQL Server"或"SSIS包存储"等选项.如果我选择"SSIS包存储"并浏览到MSDB而不是文件系统,我可以选择存储在sysssispackages中的SSIS包.
但是,SSMS在选择SSIS包存储时自动选择的/ DTS开关的文档似乎仅适用于存储在文件系统上的包.
我还注意到,如果执行作业的用户没有文件系统权限,则在选择SSIS包存储时,作业将失败 - > MSDB - >包含"访问被拒绝"错误或"〜对象无效"不存在".由于文件系统上不存在包,为什么选择SQL Server时执行工作并且在使用SSIS包存储时失败?即使选择了MSDB,dtexec是否真的在文件系统上寻找dtsx文件?在引用运行代理的服务器时,我有可能是错误的,理解SQL Server和SSIS包存储 - > MSDB是一回事.
我做了一些研究,当从MSDB文件夹中选择时,我无法找到使用SQL Server和SSIS包存储之间的差异(如果有的话).
任何人都可以对这些差异有所了解吗?
bil*_*nkc 10
存储SSIS包有2个位置:文件系统或SQL Server.其余的是语义.
您可以使用SSIS包存储,它只是安装位置中众所周知的位置.
%Program Files%\Microsoft SQL Server\{Version}\DTS\Packages
Run Code Online (Sandbox Code Playgroud)
或者您可以选择您喜欢的文件系统上的任何位置.如果您使用此路由,则需要确保SQL代理帐户或凭证代理,或者,如果从xp_cmdshell运行包,则SQL Server服务帐户可以访问该位置.
如果您想要使用Package Store(即我提到的文件夹)的唯一优势是您可以使用SSMS中存在的Integration Services管理工具(通过连接到Integration Services而不是数据库引擎).
然而,这有很多陷阱,例如无法处理多个实例,软件包只能以64位模式运行,无法访问代理帐户等等.您无论如何都不应该从SSMS运行软件包.
如果记忆正确
*使用项目部署模型,软件包被"编译"(用清单压缩)到.ispac中,该文件存储在SSISDB.internals.*表的内容中.
最终,存储包的位置不会影响您运行它们的能力.您可以使用DTEXEC,SQL Agent或自定义.NET代码运行包.存储包的选择主要取决于您的管理风格.
归档时间: |
|
查看次数: |
14855 次 |
最近记录: |