Matthewl 发表于 2015-7-1 16:37:40

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

  以下将建立一个SQL Server SSIS包 然后在job中使用这个包,并将job部署到目标机器
  
  1. 首先建立ssis包,使用sqlserver 自带的businessintelligence development stdio即可定制自己所需的SSISpackage
  
  

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

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

  
  
  
  4. 将启用包配置的勾去掉,否则编译的时候不会产生config文件。 编译SSISpackage。
  
  此时,在SSIS项目路径下的\bin\Deployment下可以看到有个.dtsx文件,和一个.DtsConfig文件一个是包文件,一个是配置文件,将来需要改变配置的属性时用notepad打开DtsConfig即可
  
  5. 在数据库中建立一个job,在我的job中,第一步使用到了上述的SSISpackage
  
  6. 利用数据库的企业管理器将job导出脚本
  
  

  
  
  
  7. 修改脚本, 特别注意红框标注的部分,将脚本保存
  
  8. 编写部署脚本,个人推荐使用powershell,因为在powershell中可以修改config文件,不需要先手动修改config了
  
  powershell脚本:
  
  Write-Host"install the ssis package"
dtutil.exe /FILE ".\ImportClickInfo.dtsx" /DestS $LocalServer /COPYSQL";\Maintenance Plans\ImportClickInfo" Write-Host "setup thejob"
sqlcmd -S $LocalServer -E -i ssis_ClickInfo.sql
  
  cmd脚本:
  
  @echooff
if "%1"=="" goto help
if "%1"=="/h" goto help
if "%1"=="/?" goto help
  
  @reminstall the ssis package
dtutil /FILE ImportClickInfo.dtsx /DestS %1 /COPY SQL;"\MaintenancePlans\ImportClickInfo"
  
  @remsetup 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. 在目标机器运行部署脚本,大功告成。
  

  
页: [1]
查看完整版本: 图解:SQL Server SSIS包和job的部署攻略