我们在服务器上的目录中保存了几个SSIS包(在解决方案中)。这些包通过SQL Server代理作业运行,“文件系统”作为包源。软件包不会以任何方式添加到“Integration Services”(您可以通过SSMS中的“Connect”按钮连接)。这似乎工作正常。
现在我正在尝试了解Integration Services的存储包的实际使用和工作方式。这可能是有充分理由的 - 但我还没有得到它(阅读几个SSIS主题没有帮助。)
如果我打开Integration Services并将现有包添加到存储包中的MSDB文件夹,则会将其添加到我的SQL Server实例的msdb系统数据库中。然后,我可以从sysssispackages
或sysssispackagefolders
查询其中的一些信息,然后直接运行该包。
如果我将现有软件包添加到存储软件包中的文件系统文件夹,似乎没有任何事情发生,除了它还允许我通过右键单击并选择“运行软件包”来运行它。
我觉得我在这里错过了重要的东西。我的问题如下:
非常感谢任何指针/见解!
答案 0 :(得分:5)
以下是数据库存储包与文件系统存储包的一些优点/缺点:
文件系统
SQL Server
关于第二个问题,包是SSIS可以读取和执行的XML文件。在基于文件的部署中,SSIS在文件系统上定位程序包并执行它,在数据库部署中,SSIS将程序包定位在MSDB表上并执行它。在性能方面没有差异。
答案 1 :(得分:2)
备份。如果软件包位于msdb数据库上,则在备份数据库时,将备份软件包。他们还可以利用SQL Server的安全性,而不仅仅是在文件系统上。
优点是您不必担心文件路径,或者有人会删除文件或将文件夹移动到其他位置。包裹将始终位于“同一地点”。
答案 2 :(得分:2)
好的,所以我误解了很多SSIS包存储和保存包。这是我学到的。首先,“您可以通过SSMS中的”连接“按钮(Connect - > Integration Services ...)连接的东西称为 SSIS包存储。
将软件包添加到Integration Services的“存储软件包”文件夹中的“文件系统”或“MSDB”文件夹时会发生什么?有什么好处?
文件系统
如果要使用SSIS包存储中的File System文件夹,请将包保存到默认的文件系统目录(...\Microsoft SQL Server\100\DTS\Packages
),或将文件系统的根文件夹更改为您的目录想用。 (您可以通过更改MsDtsSrvr.ini.xml文件中的<StorePath>..\Packages</StorePath>
的默认值来change the root,该文件可以在...\Microsoft SQL Server\100\DTS\Binn
目录中找到。不要忘记重新启动Integration Services完成后的服务。)当您将包添加到此目录时,它将显示在SSIS包存储中的文件系统文件夹中。然后,您可以直接从SSIS包存储或通过SQL Server代理作业运行包(通过在作业步骤属性中选择SSIS包存储作为包源,然后选择包)。
编辑包很简单:在文件系统目录中打开包,编辑并保存,新版本将立即通过SSIS包存储提供。
优点:
SQL Server / MSDB
如果您想依赖msdb数据库来保存包,则必须通过SSIS包存储将每个包导入msdb。右键单击MSDB文件夹,然后选择Import Package。这会将包保存到msdb数据库。之后您无需保存原始的.dtsx包文件。
编辑包是little harder:您必须导出包,编辑它并在SSIS包存储中再次导入包。或者您可以在BIDS中打开一个新项目,通过右键单击SSIS包并选择从SQL Server添加现有包来添加包,编辑它然后再在SSIS包存储中导入包。
优点:
除了将软件包保存为服务器上的文件外,使用Integration Services存储软件包的原因是什么?
那么为什么要通过直接引用“作业步骤属性”窗口中的package.dtsx文件,将包添加到SSIS包存储中而不是像我们一样运行它?这取决于:如果您想在msdb数据库中使用软件包,则需要软件包存储,因为没有其他方法可以维护软件包。如果您使用文件系统,可能是您有一个单独的“开发”和“部署”目录,并且可以通过SSIS包存储找到所有可以部署的软件包。在每种情况下,SSIS包存储都为您的包提供了一个简单的界面。
答案 3 :(得分:2)
这个更好地解释了这些差异 social.msdn.microsoft.com
文件系统:
我确定你确切知道FileSystem选项是什么,但是要知道 完成此部分:您可以将包保存在物理位置 在硬盘驱动器或任何具有此选项的共享文件夹上,您应该 在FileSystem中提供存储包的完整限定路径 选项。
SQL Server:
使用此选项,SSIS包将存储在msdb数据库中, 在sysssispackages表中。你可以在任何文件夹中将它们分开 想。这些文件夹是虚拟文件夹,列在 sysssispackagefolders表。所以使用这个选项ssis包不会 存储为物理文件。它将存储在msdb数据库中。
SSIS包裹商店:
此选项实际上不是部署的真正选项。为什么?因为 这只是一个重定向步骤。我的意思是,如果你选择 当您尝试保存包的副本时BIDS中的此选项..., 你会看到一棵树有父母“SSIS包”和两个孩子: “MSDB”和“文件系统”。如果你选择“MSDB”包将 保存在msdb数据库下与sql server选项相同(上一个 选项描述)。如果你选择“文件系统”,ssis package将存储为扩展名为.dtsx但在a中的物理文件 此地址中的文件夹:\ Microsoft SQL Server \ 100 \ DTS \ Packages。这就像文件系统选项,但你可以 不在任何地方存放包裹,你可以将它存放在一个地方 预定义的物理位置,当然您可以创建子文件夹 那里,但你不能越过父母保存包任何其他 比预定义的地方。