我一直在研究SSIS的几种部署策略,并想知道哪种策略最容易维护。我一直倾向于使用SQL Server配置来容纳连接字符串,然后在从开发服务器导入包以更改连接字符串后运行proc。但是,我有75个包,这看起来有点单调乏味。有人能建议一个好的部署策略吗?
我有一个Dev,Stage和几个要部署的实时服务器。
答案 0 :(得分:2)
我们正在为我的团队构建的大多数软件包使用SQL配置。我们为解决迁移问题所做的是基于环境变量添加第二个配置,该环境变量告诉包使用哪个配置数据库。对于每个人来说,这可能不是一个好的选择,但它适用于我们的设置。
详细说明:
当我们构建一个新包时,我们必须将SQL配置迁移到每个环境并根据需要进行调整。但是从那时起,如果我们改变包使用哪个连接或者哪个服务器正在执行它,我们只需要担心它们。
这样做,程序包始终知道哪个服务器正在执行它,并始终使用与该服务器关联的配置。因此,单个包的持续维护和部署通常是直截了当的。我们通常不得不担心移动的是包本身以及与更新相关的任何底层架构更改。
答案 1 :(得分:0)
我通常发现在XML文件中包含所有必需的数据库连接更容易。当程序包部署到每个环境时,这会根据需要进行修改(这可能是Deployment Manifest安装的一部分)。您的75个软件包中的每个软件包都可以共享相同的配置文件,这使得管理它非常简单。
答案 2 :(得分:0)
我们在每台机器上都有一个指向目录的环境变量。在该目录中,我们有一个SSIS配置文件。配置文件有一个条目 - 它配置在我们所有软件包中找到的连接管理器的连接字符串属性 - 称为SSIS_CONFIG。此连接字符串指向具有该环境的配置表的数据库。
配置表包含连接管理器的配置,以及各种其他配置。连接管理器行的ConfigurationFilter设置为数据库名称,ConfiguredValue具有该数据库的连接字符串。
每个包都有SSIS_CONFIG连接管理器。所有其他连接管理器都被命名为它们所连接的数据库的名称(而不是服务器和数据库的SSIS默认命名)。
SSIS_CONFIG连接管理器由包配置配置,配置类型为间接XML,其中配置位置存储在环境变量中。每个其他连接管理器使用配置类型SQL Server,连接SSIS_CONFIG以及它们所连接的数据库名称的配置筛选器。
如果新软件包需要连接到数据库,则可能是另一个软件包也必须这样,因此该Connection Manager所需的配置已经在配置表中,因此我们在构建该软件包时重用该值包配置。
每个环境都有环境变量及其自己的数据库和配置表版本。环境之间配置表的唯一区别是ConfiguredValue列中的连接字符串。例如,DEV环境中的连接字符串指向数据库的DEV版本,QA环境条目指向数据库的QA版本。
在环境之间升级时编辑包会使测试无效。这种方法允许我们在不触及它们的情况下推广包。该设计也非常灵活,使开发和测试更加容易。
我们可以使用此方法将多个实例在同一台计算机上运行,并使用此方法作为指导: http://www.sqlservercentral.com/articles/Integration+Services+(SSIS)/69739/