SSIS,dtsx和部署包

时间:2009-01-12 15:46:29

标签: sql-server ssis

我只是想更好地理解SSIS包以及如何部署它们。纠正我我错了,但对于任何部署,我认为至少需要两个文件.SSISDeploymentManifest和.dtsx。 .SSISDeploymentManifest充当等效的Windows安装程序包,指向.dtsx。 dtsx是“stuff”的实际包,在运行安装程序时会引用外部文件。安装它时,包将被添加到该实例的ssis包列表中。

我的进一步问题:

  • 如果我想保留同一个软件包的早期版本,我是否可以使用上述两个文件复制bin目录,如果需要回滚到以前的软件包,请单独保存?
  • 这些软件包安装在哪里? SSIS如何知道包装的位置?

3 个答案:

答案 0 :(得分:17)

  

纠正我我错了,但对于任何部署,我认为有必要   至少有两个文件.SSISDeploymentManifest和.dtsx。该   .SSISDeploymentManifest充当等效的Windows安装程序   包含指向.dtsx的包。 dtsx是实际的包   “stuff”被引用作为外部文件,当你运行时   安装程序。安装时,包将添加到列表中   该实例的ssis包。

您的假设大多是正确的。您不需要部署清单,但它可以很方便。此外,您不需要部署到SQL Server实例。您也可以选择部署到文件系统。我将在下面解释。

关于你的第一个问题:

版本控制:

确保您正在通过visual studio开发和检查您的dtsx软件包。在sourcesafe或您正在使用的任何版本控件中标记您的版本。如果您正在登记和标记,那么您应该能够轻松回滚到以前的版本。正如您所提到的,您也可以保存旧bin目录的副本,但自然会将它们放在过时的子文件夹或其他内容中。但是,这并不能取代适当的版本控制。

关于你的第二个问题:

部署:

正如其他海报所述,您首先要做出决定:

a)将软件包部署到文件系统 b)将软件包部署到MSDB

每个人都有好处,每个人都有自己的偏好。我已经使用过两者,但我更喜欢文件系统,因为它更透明,但还有更多要维护。

有关详情,请参阅此帖子:http://blogs.conchango.com/jamiethomson/archive/2006/01/05/SSIS_3A00_-Common-folder-structure.aspx

代码在dtsx包中。通常,为了使您的包可移植,您还可以将连接字符串和其他可配置信息抽象为配置文件(.dtsconfig)或环境变量(不需要文件)。请参阅BOL以了解有关配置的更多信息。

清单文件包含有关要安装的dtsx和配置文件的元数据。如果你打开一个,你会发现它是一个简单易读的xml文件。

清单文件可以轻松移交给DBA进行部署(要求他们双击清单文件并按照说明操作,但他们需要说明。

对我来说,清单文件对于部署到SQL Server比对文件系统更有用。实际上,它所做的只是制作dtsx和配置文件的副本,并将它们放在你告诉它的地方。您可以轻松地指示DBA将dtsx文件复制到服务器上的公用文件夹,并将配置文件复制到同一服务器上的另一个文件夹。

然后,当您使用SQL Agent计划作业时,指定您将运行存储在文件系统上的SSIS包并浏览到它所在的位置。如果您正在使用配置,则会有一个选项卡来指定配置文件的位置。

有关SSIS包的配置/部署/版本控制的知识非常多。但希望这会让你开始走上正确的道路。

答案 1 :(得分:0)

使用SQL Server中的“导入/导出向导”导出DTS包时,可以选择将它们保存到SQL Server或本地保存在文件系统中。

答案 2 :(得分:0)

关于SSIS包的版本,您需要查询SSISDB以提取版本号。令人讨厌的是,这种信息并没有直接在Management Studio中显示,但在此之前,有人可能会觉得这很有用:

SELECT prj.[name] as Project
      ,pkg.[name] as Package
      ,pkg.[version_major]
      ,pkg.[version_minor]
      ,pkg.[version_build]
FROM [SSISDB].[internal].[packages] as pkg
JOIN [SSISDB].[internal].[projects] as prj
ON pkg.[project_id] = prj.[project_id]
ORDER BY prj.[name] 
相关问题