5

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

我的进一步问题:

  • 如果我想保留同一个包的以前版本,我可以只复制带有上述两个文件的 bin 目录并分开保存,如果我需要回滚到以前的包吗?
  • 这些软件包安装在哪里?SSIS 如何知道包在哪里?
4

3 回答 3

17

纠正我我错了,但对于任何部署,我相信至少需要两个文件,一个 .SSISDeploymentManifest 和一个 .dtsx。.SSISDeploymentManifest 充当指向 .dtsx 的等效 Windows 安装程序包。dtsx 是实际的“东西”包,在运行安装程序时被引用为外部文件。当您安装它时,该包将被添加到该实例的 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 代理计划作业时,您指定要运行存储在文件系统上的 SSIS 包并浏览到它所在的位置。如果您正在使用配置,那么有一个选项卡可以指定配置文件的位置。

关于 SSIS 包的配置/部署/版本控制有很多要了解的。但希望这能让你走上正确的道路。

于 2009-01-14T16:39:07.277 回答
0

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

于 2009-01-12T16:00:25.950 回答
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] 
于 2014-04-04T20:54:12.213 回答