图解:SQL Server SSIS包和job的部署攻略

以下将建立一个SQL Server SSIS 然后在job中使用这个包,并将job部署到目标机器

1. 首先建立ssis包,使用sql server 自带的business intelligence development stdio即可定制自己所需的SSIS package

图解:SQL Server SSIS包和job的部署攻略_第1张图片

2. SSIS包中需要动态改变的配置导出config文件,比如数据库的连接字符串等, 在包的work flow的空白处右键,选择包配置

图解:SQL Server SSIS包和job的部署攻略_第2张图片

3. 勾选启用包配置, 添加一个xmlconfig文件, 然后选择需要放到config中动态配置的属性,此处我选择了一个自定义变量和两个db的连接字符串

图解:SQL Server SSIS包和job的部署攻略_第3张图片

4. 将启用包配置的勾去掉,否则编译的时候不会产生config文件。 编译SSIS package

此时,在SSIS项目路径下的\bin\Deployment下可以看到有个.dtsx文件,和一个.DtsConfig文件一个是包文件,一个是配置文件,将来需要改变配置的属性时用notepad打开DtsConfig即可

5. 在数据库中建立一个job,在我的job中,第一步使用到了上述的SSIS package

6. 利用数据库的企业管理器将job导出脚本

图解:SQL Server SSIS包和job的部署攻略_第4张图片

7. 修改脚本, 特别注意红框标注的部分,将脚本保存

图解:SQL Server SSIS包和job的部署攻略_第5张图片

8. 编写部署脚本,个人推荐使用powershell,因为在powershell中可以修改config文件,不需要先手动修改config

powershell脚本:

Write-Host "install the ssis package"
dtutil.exe /FILE ".\ImportClickInfo.dtsx" /DestS $LocalServer /COPY SQL";\Maintenance Plans\ImportClickInfo" Write-Host "setup the job"
sqlcmd -S $LocalServer -E -i ssis_ClickInfo.sql

cmd脚本:

@echo off
if "%1"=="" goto help
if "%1"=="/h" goto help
if "%1"=="/?" goto help

@rem install the ssis package
dtutil /FILE ImportClickInfo.dtsx /DestS %1 /COPY SQL;"\Maintenance Plans\ImportClickInfo"

@rem setup the job
sqlcmd -S %1 -E -i ssis_ClickInfo.sql

goto :eof

:help
@echo Usage:
@echo input the server name

9. 在需要部署的机器上将XXX.dtsx文件,XXX.DtsConfig文件,XXX.sql,还有用于部署的脚本文件(.cmd 或者 .ps1)复制过去

10. 修改DtsConfig中需要修改的值,如连接字符串等, 修改XXX.sql中的绝对路径地址,将ssis_conf改为目标机器上的路径

11. 在目标机器运行部署脚本,大功告成。

 

你可能感兴趣的:(sql,server)