Sql server 了解Integration Services上的存储包

Sql server 了解Integration Services上的存储包,sql-server,ssis,Sql Server,Ssis,我们有几个SSIS包(在一个解决方案中)保存在服务器上的一个目录中。这些包通过SQL Server代理作业运行,并以“文件系统”作为包源。软件包不会以任何方式添加到“集成服务”(您可以通过SSMS中的“连接”按钮连接的东西)。这似乎很有效 现在,我试图了解Integration Services存储包的实际用途和工作原理。这可能是有一个很好的理由,但我还不明白(阅读几个主题没有帮助) 如果打开Integration Services并将现有包添加到存储包中的MSDB文件夹中,它将添加到我的SQL

我们有几个SSIS包(在一个解决方案中)保存在服务器上的一个目录中。这些包通过SQL Server代理作业运行,并以“文件系统”作为包源。软件包不会以任何方式添加到“集成服务”(您可以通过SSMS中的“连接”按钮连接的东西)。这似乎很有效

现在,我试图了解Integration Services存储包的实际用途和工作原理。这可能是有一个很好的理由,但我还不明白(阅读几个主题没有帮助)

如果打开Integration Services并将现有包添加到存储包中的MSDB文件夹中,它将添加到我的SQL Server实例的MSDB系统数据库中。然后,我可以从
sysssippackagefolders
sysssippackagefolders
查询有关它的一些信息,并直接运行包

如果我将一个现有的包添加到存储包中的文件系统文件夹中,似乎什么都不会发生,只是它还允许我通过右键单击并选择“运行包”来运行它

我觉得我错过了这里重要的东西。我的问题如下:

  • 使用Integration Services存储的原因是什么 除了将包保存为服务器上的文件之外,还需要其他包吗
  • 将包添加到“文件系统”或 Integration Services“存储包”文件夹中的“MSDB”文件夹? 有什么好处
  • 非常感谢任何指点/见解

  • 备份。如果包位于msdb数据库上,则在备份数据库时,将备份包。此外,它们还可以利用SQL Server的安全性,而不仅仅是在文件系统上

  • 优点是您不必担心文件路径,或者有人会删除文件或将文件夹移动到其他位置。包裹将始终位于“同一位置”


  • 以下是数据库存储包与文件系统存储包的一些优点/缺点:

    文件系统

    • 基于操作系统的文件加密和ACL
    • 更易于直接访问以查看或编辑软件包
    • 开发人员通常更容易管理(要更改包,只需替换文件)
    SQL Server

    • 多人更容易访问
    • 数据库安全、角色和代理交互的好处
    • 使用正常的数据库备份过程备份包
    • 通常DBA更容易管理(他将控制包在更改等方面发生的事情)

    关于第二个问题,包是SSIS可以读取和执行的XML文件。在基于文件的部署中,SSIS在文件系统上定位并执行包;在DB部署中,SSIS在MSDB表上定位并执行包。在性能方面没有任何差异。

    好的,所以我对SSIS包存储和保存包的理解有很多误解。这是我学到的。首先,“通过SSMS中的“connect”(连接->集成服务…)按钮可以连接的东西称为SSIS包存储

    将包添加到Integration Services“存储包”文件夹中的“文件系统”或“MSDB”文件夹时,会发生什么情况?优势是什么?

    文件系统

    如果要使用SSIS包存储中的文件夹,请将包保存到默认的文件系统目录(
    ..\Microsoft SQL Server\100\DTS\packages
    )或将文件系统的根文件夹更改为要使用的目录。(您可以通过更改MsDtsSrvr.ini.xml文件中的默认值
    。\Packages
    ,该文件位于
    ..\Microsoft SQL Server\100\DTS\Binn
    目录中。完成后不要忘记重新启动Integration Services服务。)将包添加到此目录时,它将出现在SSIS包存储的文件系统文件夹中。然后,您可以直接从SSIS包存储或通过SQL Server代理作业运行包(通过在作业步骤属性中选择SSIS包存储作为包源,然后选择包)

    编辑包很容易:在文件系统目录中打开包,编辑并保存,新版本将通过SSIS包存储立即可用

    优点:

    • 包的部署和故障排除很容易
    • 当数据库引擎关闭时,包仍然可用
    SQL Server/MSDB

    如果您希望依靠数据库保存包,则必须通过SSIS包存储将每个包导入msdb。右键单击MSDB文件夹并选择导入包。这将把包保存到msdb数据库中。以后不需要保存原始的.dtsx包文件

    编辑程序包是一个重要步骤:您必须导出程序包,对其进行编辑,然后在SSIS程序包存储中再次导入程序包。或者,您可以在BIDS中打开一个新项目,通过右键单击SSIS Packages并选择add Existing package from SQL Server来添加包,对其进行编辑,然后在SSIS package Store中再次导入包

    优点:

    • 包的安全性可以通过数据库安全性进行严格配置
    • 将在备份msdb数据库时备份包
    • 包裹存放在中心位置
    除了将包保存为服务器上的文件外,使用Integration Services存储包还有什么原因?

    那么,为什么要将包添加到SSIS包存储中,而不是像我们那样直接从“作业步骤属性”窗口中引用package.dtsx文件来运行它呢?这取决于:如果你想要你的包裹,我