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