sql - 什么是 SSIS 包部署和更改跟踪最佳实践?

标签 sql sql-server deployment ssis

对于我的 SQL 数据库架构和数据,我有一个相当强大的开发环境(一切都是源代码控制的,部署是自动化的,等等),但是当涉及到 SSIS 包时,这个过程非常繁琐并且完全手动。

  • 如何自动化 SSIS 包升级过程(现在,我将包手动复制到每台服务器,然后使用 Management Studio 的“SSIS 包升级向导”)

  • 如何部署我的时间表(目前,我正在手动执行)

  • 如何部署 SQL 代理作业(目前,我正在手动执行)

  • 如何将我的日程安排和作业存入我的 TeamSystem 存储库(目前,我没有使用源代码控制)

  • 我还可以/应该做其他事情来增强我在 SSIS 包方面的工作方式吗?

我使用的是 MS SQL Server 2008 SP1,但我想一些建议对其他版本也可能有用。

最佳答案

关于第 1 点(自动化部署):

可以使用dtutil.exe从命令行部署SSIS包。

以下示例将本地文件 c:\test.dtsx 部署到 server1 上的 MSDB 存储,名称为 test_package:

dtutil.exe /FILE C:\test.dtsx /dests server1 /COPY SQL;test_package

如果您能计算出要使用的参数组合,它将为所有各种 SSIS 存储选项执行导入/导出的任意组合。

这可能与您无关,但是这不会(向导会)复制配置文件;为此,您需要一个单独的批处理步骤。

关于第 2 点和第 3 点(SQL 代理的源代码控制):

正如其他人所说,SQL 代理作业和计划可以编写为 T-SQL 脚本(在 Management Studio 中,右键单击作业并选择将作业编写为...),保存在源代码中控制,并像任何其他 T-SQL 脚本一样部署。

我们的数据库源代码控制树设置为每个生产服务器一个文件夹,每个用户数据库包含一个子文件夹,以及一个名为 _config 的额外子文件夹,其中包含用于服务器级对象(例如登录、链接服务器)的脚本和 SQL 代理作业。

(这与您的问题并不真正相关,但我们将 SSIS 包存储在自己的树中,因为它们可以应用于多个服务器)

我们不使用 TFS,因此我无法评论将脚本放入其中的具体细节。

关于sql - 什么是 SSIS 包部署和更改跟踪最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1571412/

相关文章:

sql - 用于在两个已知字符串之间选择一个字符串的 SQL 查询

deployment - 重启tomcat时如何控制webapp部署顺序

ruby-on-rails - 如何使用nginx、capistrano和passenger部署React前端+Rails api后端

tomcat - 如何将我的网络应用程序设置为从本地主机 :8080 显示为 ROOT

php - 在mysql中使用group by查询和order by查询进行选择

sql - 如何基于具有多行作为响应的另一个 SELECT 进行 SELECT?

php - 带有 SQL 语句的 Foreach 循环

sql - Hive DateTime 截断器(QUARTER、WEEK、DAYOFWEEK)?

sql-server - TSQL如何指定PIVOT的列列表范围?

mysql - 适用于 SQL Server、mySQL 和 postgreSQL 的可移植 SQL