参考:
http://www.cnblogs.com/JasonLiao/p/SSISDeploy.html
https://msdn.microsoft.com/en-us/library/ms140117%28v=sql.105%29.aspx
http://stackoverflow.com/questions/21555086/how-to-deploy-a-existing-ssis-package-in-sql-server-2012
https://www.sqlshack.com/single-package-deployment-in-sql-server-integration-services-2016/
SSIS有两种部署模型:项目部署模型和包部署模型,主要是将"项目"和"单独的包"分别部署到Integration Service服务器上。
项目部署模型:项目是部署单元
部署到SQL Server的 Integration Services Catalogs下的SSISDB中,需要先创建SSISDB
在VS中,右键项目--deploy (或者双击SSIS工程目录下--binDevelopment.ispac文件)
然后弹出"部署向导",选择.ispac文件,选择部署的SQLServer目的地(实例名和SSISDB的路径)
部署之后,可以右键包名,配置包运行时的参数,然后运行
查看运行结果,reports--All Execution
包部署模型:包是部署单元, 日志提供程序必须添加到包以便捕获事件,包生成的事件不自动捕获
文件系统:包被存储在你选择的文件夹内;
SSIS包存储:包被保存到SSIS服务管理的一套文件系统表中,位于Program FilesMicrosoft SQL Server100DTS for SQL Server 2008文件夹下;
MSDB数据库:包被存储在dbo.sysssispackages 表中
包部署模型中的四种主要的部署方式:
- 传统方式
- 手动方式
- 命令方式
- 实用方式
分别详细描述一下各种方式.
传统方式
使用内置的部署方法来发布包到服务器上:首先,SSISDeploymentManifest(SSIS项目),这是一个用来描述哪些包需要被部署到服务器的基础信息的XML。如果双击项目,一个向导将会协助你发布包到服务器。
按照以下步骤创建即可:
- 右击项目选择属性。在配置属性中,选择部署(Deployment Utility)。设定CreateDeploymentUtility 属性为True。能看到如下图1所示。
-
右击项目(project ),然后点击生成(Build)。将会创建清单中的内容到配置的文件夹里然后将所有的包复制到文件夹中。
-
在部署文件中, 默认(.inDeployment),然后双击ISDM文件进入部署向导。
-
按照部署向导来部署你的文件,
图1
手动方式
对于能够远程控制服务器的人来说(DBA…),可以手动做任何事情:比如手动部署包。
- 使用Management Studio 登陆SSIS服务浏览你打算部署的文件夹。
- 右键文件夹并选择“导入包”。
- 在对话框中指定包的地址,然后点击ok
对于喜欢在BIDS处理的人来说可以如下处理:
- 打开包。在菜单中,找到文件并且选择另存为"Save Copy of [myPackage.dtsx] As" 如下图2所示 。
- Hit OK. 在对话框中选择目的位置,并且选择包需要被部署的位置。点击Ok
图2
命令方式
如果你是那些十分热爱命令行的家伙,那么也可以直接使用命令行部署包。典型的CMD line 如下:
dtutil /FILE “C:myPackagesmyPackage.dtsx” /DestServer myServer /Copy SQL;myPackage
注意:目的包名称中没有.dtsx 扩展名。
实用方式
最后介绍一下我最为喜欢的部署包到服务器的方式(使用BIDS Helper)。一个免费的插件。这个小小的插件引入了大量的功能到BIDS中,其中最为有价值的对于我们来说就是简化部署功能。
- 首先你需要配置部署属性,右击项目然后选择属性(Properties)。在配置属性中,选择部署(Deploy --BIDS Helper),选择你喜欢目标类型,然后配置路径,如图3所示。
- 现在你可以在解决方案浏览器中只是右击包然后选择“部署(Deploy)”来部署一个包了。
图 3
最大的优势就是无论多少个文件都能一次性部署:只需要右键你的项目,然后选择部署。所有的包都会被部署。
PS:
在VS的"解决方案"中,可以创建project level的Connection Manager和Parameters
在SQL Server2016和SSDT 2015发布后,可以在VS中右键单击包名,单独部署一个包(或者按ctrl选择多个包一起部署)。
在SSDT 2015中,可以用ISDeploymentWizard.exe (Microsoft SQL Server120DTSBinn目录下)进行包部署和项目部署的选择
包的动态配置 (单个包的配置)---需要把项目从"项目部署模式"转换为"包部署模式"
SSIS包的动态配置:
在运行时更新属性值来运行包,开发时设置的属性起调试作用
比如使用配置,您可以更改连接管理器的连接字符串,或者更新变量的值
配置可以使包更加灵活
可以更轻松地将包从开发环境转移到生产环境中; 将包部署到多台不同的服务器时,配置非常有用
SSIS中5种不同的配置存储,顾名思义就是设置在包上,SSIS Menu---Package Configuration
1) XML configuration file
2) Environment variable
3) Registry entry
4) Parent package variable
5) SQL Server
https://msdn.microsoft.com/zh-cn/library/cc895212.aspx
包的动态配置 (批量的包配置)
希望在包执行的时候可以随意选择参数,这时候我们可以用环境变量
1) 以配置connection manager为例,右键--parameterize, 可以在第三个tab界面的parameters中看到
2) 确保包执行成功,然后部署到SQL Server上的Integration Services Catalogs
3) 创建环境变量,并在variables中设置环境变量。
在projects下的Environments中,右键--"Create Environment"
使用环境变量
右键projects下已经发布的项目,“configure”--在parameters中,选用上一步创建的环境变量
执行包并选择绑定的环境变量
选中packages下的包,右键"Execute",勾选"环境变量"然后执行