SSIS包的文件系统和SQL Server部署之间有什么区别?

时间:2009-07-15 17:09:52

标签: sql-server-2005 ssis

我有一个需要部署到SQL Server代理的SSIS包。

它有2个外部依赖项(2个程序集,都安装在GAC中)

现在,程序包在文件系统部署

下运行正常

但是当我们部署到SQL Server代理程序时,它失败,并且在需要1个外部依赖项的任务中“对象引用未设置为对象实例”

只是让你知道,这个外部依赖是一个Interop程序集到正确的传真com api

文件系统部署和SQL Server部署之间的主要区别是什么。我想如果我能理解这一点,那么我可以诊断出这个问题。

2 个答案:

答案 0 :(得分:5)

文件系统SSIS部署(我唯一完成的那种)将SSIS包存储为操作系统上的文件。 SQL Server部署,如果我没有,首先加载要存储在“deploymemt-only”文件中的软件包,稍后将其用于将它们加载回不同的SQL Server实例。 (我不知道他们加载了什么数据库 - 在SQL 7.0和2000中,DTS包存储在msdb中,所以我先查看那里。也许没有文档的表sysdtspackages?)

就个人而言,这一切看起来都令人困惑,而且随着时间的推移难以维持,我只是坚持使用文件。安全性较弱,我不确定我错过了哪些其他好处,但更新时我只是复制新文件而且我已经完成了。

答案 1 :(得分:0)

SQL Server Integration Services(SSIS)可以通过两种方式部署:文件系统部署和SQL Server部署。在这里,我们将看到这两种方法之间的区别。

文件系统部署:

•软件包保存在硬盘驱动器上的物理位置或网络上的任何共享文件夹中。

•如果我们想要对其进行任何更改,我们可以轻松管理这些包。

•在文件系统上可以使用软件包,因为不存在服务器故障的问题。

•我们可以轻松地将软件包加载到设计器中。

SQL Server部署:

•SSIS包将存储在MSDB数据库的sysssispackages表中(我们可以在系统表下的MSDB数据库中找到此表--msdb.dbo.sysssispackages)。如果需要,我们可以将包保存在不同的文件夹中,这些文件夹是虚拟文件夹。这里SSIS包不会存储为物理文件,而是存储在MSDB数据库中。

•保存在SQL Server上时,多个人可以轻松访问包。

•与文件系统相比,它更安全,因为它获得与数据库安全性相同的好处。

•我们可以在备份数据库的同时备份软件包。

•我们可以使用sysssispackages表使用SQL Server查询过滤包。