【问题标题】:SSIS deployment best practices - package and other artifactsSSIS 部署最佳实践 - 包和其他工件
【发布时间】:2011-02-17 15:58:48
【问题描述】:

在我的环境中,大多数 SSIS 包都是独立的,只有它自己的包需要部署到生产环境中。

但是现在我们有一组相当复杂的包,需要创建自己的表,如果可能的话,我希望能够在安装时检查权限。

我们考虑过创建一个 MSI 来使用分步向导进行生产安装。

我的问题:对于这样的 SSIS 部署方案是否有最佳实践?我们可以劫持 SSIS 默认生成的部署向导来添加我们自己的步骤吗?是否有任何 Microsoft 文档/指南?

【问题讨论】:

    标签: sql-server sql-server-2008 deployment ssis


    【解决方案1】:

    通过在具有大量繁文缛节的大型组织中部署多个项目,msi 已被证明是最佳解决方案。就导入项目本身而不是部署工具而言,可以选择通过从 msi 中调用的命令行进行导入:

        [RunInstaller(true)]
        public partial class CustomInstaller : System.Configuration.Install.Installer
        {
    
            public override void Commit(IDictionary savedState)
            {
                    base.Commit(savedState);
                    string InstallPath = System.IO.Path.GetDirectoryName(this.Context.Parameters["assemblyPath"]) + @"\";
                    string SqlServer = Context.Parameters["SqlServer"];
                    SsisInstaller.ImportPackage(InstallPath + "MyProject.dtsx", "MyProject", SqlServer);
            }
    
        }
    
    public class SsisInstaller
    {
    
    
        public static void ImportPackage(string packagePath, string packageName, string sqlServer)
        {
            ProcessStartInfo ProcessStartInfo = new ProcessStartInfo(@"""c:\program files\Microsoft SQL Server\100\DTS\Binn\dtutil.exe""");
            ProcessStartInfo.Arguments = @" /File """ + packagePath + @""" /Copy SQL;" + packageName + " /Q /DestS " + sqlServer;
            Process.Start(ProcessStartInfo);
        }
    
    }
    

    如您所见,安装程序项目中添加了一个用户界面步骤,并通过上下文传递以允许用户指定 SSIS 的实例名称。将 Sql Agent 作业部署为 .sql 脚本以及其他 sql 依赖项也有帮助,但批量部署 sql 脚本是一个更普遍的问题。

    【讨论】:

    • 必须有一种方法可以通过 dtutil 传递用户的上下文,我猜想但找不到。
    【解决方案2】:

    如果您使用的是 sql server 2012,您可能需要查看项目部署模型:

    http://msdn.microsoft.com/en-us/library/hh213290

    这消除了处理安装包的一些麻烦......至于在部署中挂钩其他操作,我发现 powershell 或 msbuild 运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-19
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 2017-07-06
      • 1970-01-01
      相关资源
      最近更新 更多