好的,所以我对 SSIS 包商店和保存包有很多误解。这是我学到的。首先,“您可以通过 SSMS 中的“连接”按钮连接的东西”(连接 -> 集成服务...)称为SSIS 包商店。
将包添加到 Integration Services 'Stored Packages' 文件夹中的 'File System' 或 'MSDB' 文件夹时究竟会发生什么?有什么好处?
文件系统
如果要使用 SSIS 包存储中的文件系统文件夹,请将包保存到默认文件系统目录 ( ...\Microsoft SQL Server\100\DTS\Packages
) 或将文件系统的根文件夹更改为要使用的目录。(您可以通过更改 MsDtsSrvr.ini.xml 文件中的默认值来更改根目录<StorePath>..\Packages</StorePath>
,该文件可以在...\Microsoft SQL Server\100\DTS\Binn
目录中找到。完成后不要忘记重新启动 Integration Services 服务。)当您添加打包到此目录,它将出现在 SSIS 包存储的文件系统文件夹中。然后,您可以直接从 SSIS 包存储或通过 SQL Server 代理作业运行包(通过在作业步骤属性中选择 SSIS 包存储作为包源,然后选择包)。
编辑包很容易:打开文件系统目录中的包,编辑并保存,新版本将立即通过 SSIS 包商店提供。
优点:
- 软件包的部署和故障排除很容易
- 当数据库引擎关闭时,包仍然可用
SQL Server/MSDB
如果你想依赖msdb数据库来保存你的包,你必须通过 SSIS 包存储将每个包导入 msdb。右键单击 MSDB 文件夹并选择导入包。这会将包保存到 msdb 数据库。之后您无需保存原始 .dtsx 包文件。
编辑包有点困难:您必须导出包,编辑它并在 SSIS 包商店中再次导入包。或者您可以在 BIDS 中打开一个新项目,通过右键单击 SSIS 包并选择从 SQL Server 中添加现有包来添加包,对其进行编辑,然后在 SSIS 包存储中再次导入包。
优点:
- 包的安全性可以通过数据库安全性进行严格配置
- 备份 msdb 数据库时将备份包
- 包裹存放在中央位置
除了将它们保存为服务器上的文件之外,还有什么原因使用集成服务来存储包?
那么,为什么要向 SSIS 包存储中添加一个包,而不是像我们一样通过直接从“作业步骤属性”窗口引用 package.dtsx 文件来运行它)?这取决于:如果您希望您的包在 msdb 数据库中,您需要Package Store,因为没有其他方法可以维护您的包。如果您使用文件系统,可能是您有一个单独的“开发”和“部署”目录,所有准备好部署的包都可以通过 SSIS 包存储找到。在每种情况下,SSIS 包商店都为您的包提供了一个简单的界面。
感谢João Leal和Diego的回答!