【问题标题】:SSIS package upgraded by deployment通过部署升级的 SSIS 包
【发布时间】:2015-01-22 14:33:09
【问题描述】:

在包含多个 SQL 服务器的 QA 虚拟环境中,我想部署一个通过 Visual Studio 2010 维护的 SSIS 2012 包(ispac,项目部署)。目标 SSIS 服务器是 2012,但工作站上的客户端包括 SQL 服务器2014. 通过在工作站上执行 ispac 包并指定在 SQL server 2012 上部署,部署没有任何错误。但是在 SSIS 服务器上执行包时,我们会收到诸如

之类的错误

“包名”:错误:包中的版本号不是 有效的。版本号不能大于当前版本
数字。

“包名称”:错误:从节点加载值“8”时出错 “DTS:属性”。

“包名称”:错误:包从版本 8 迁移到 版本 6 失败,出现错误 0xC001700A “版本号在 包无效。版本号不能大于 当前版本号。”。

我所有的包(.dtsx)都有

 <DTS:Property DTS:Name="PackageFormatVersion">6</DTS:Property>

以及清单

<SSIS:Property SSIS:Name="PackageFormatVersion">6</SSIS:Property>

看起来 SQL 2014 客户端或工作站将我的包升级到 V8,即使我的目标服务器是 V6。 当我直接从 SQL 2012 服务器(没有 SQL 2014)部署时,一切都按预期部署和运行。 这是预期的结果吗?或者问题

【问题讨论】:

  • 您使用SQL Server Data Tools 2012开发的解决方案,该机器还包含SSDT 2014。部署到2012服务器时,它报告您已部署2014解决方案的错误,是吗?跨度>
  • 如果开发了解决方案,这与机器无关,我所有的包都是版本 6(即 SSIS 2012)。我认为问题来自部署解决方案的工作站,其中包含 SSIS 2014 但在 SSIS 2012 上。开发机器包含 SQL2012、VS 2010、VS 2013
  • 对,茶还没有赶上我的大脑;)所以你看到的是包的无缝更新。有两个不同的部署向导,C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\ISDeploymentWizard.exeC:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\ISDeploymentWizard.exe 中的 ISDeploymentWizard.exe,Windows $PATH 变量首先在搜索路径中具有 120。如果您重做部署,这次指定 110 版本的向导处理 ispac,是否可以解决问题?
  • 是的,它有效。这是预期的行为吗,即使部署是在 2012 SSIS 服务器上完成的,使用 2014 部署程序部署的程序包也会升级程序包

标签: sql-server deployment ssis


【解决方案1】:

所以您遇到的是预期行为需要引用。当使用 API 打开 SSIS 包时,包会更新到该 API 版本。这允许 V-1 包在 Vcurrent 服务器上运行。格式和内容发生了变化,因此 2005 包可能不会在 2014 盒子上运行是有原因的,但这就是目的。磁盘上的位保持不变,但内存中的版本是更新的。

由于部署使用了 120 文件夹 (SQL Server 2014) 中的 ISDeploymentWizard,因此它在看到 .ispac 的 2012 版本时做的第一件事就是将其转换为 2014 格式。因此,此 .ispac 的内存版本需要序列化到 SSISDB 中,并且这些 API 在 2012/2014 之间是相同的。 DeployProject/deploy_project 方法只接受一个二进制对象,它不会对这些位是什么版本进行任何验证,只是它具有正确的形状。

但是,当你去执行包时,API 需要查看其中的实际位并发现,这是一个我不明白的版本。

该 API 在 How to deploy an existing package in SQL Server 2012 上的一些示例

【讨论】:

  • 但我的问题是我在 SQL 2012 服务器上部署我的包,但使用的是 SQL 2014 API。所以包一旦部署就不会运行。感谢您的提醒
【解决方案2】:

我能够解决这个问题。我们遇到的问题是服务器同时安装了 SQL Server 2012 和 SQL Server 2014。我试图将包安装到 SQL 2012 实例,但即使您使用 VS 2010 Shell 开发 SSIS 包,当您在文件系统中运行 .ispac 文件时,它也会从 C:\ 启动 ISDeploymentWizard.exe程序文件 (x86)\Microsoft SQL Server\120\DTS\Binn\ 位置。这导致包自动升级到版本 8,因此每次在 SQL Server 上执行包时,您都会收到来自节点“DTS:Property”错误的“错误加载值”8。

要解决,只需执行以下操作: 如果要将包部署到 SQL Server 2012,请在以下位置运行可执行文件:C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\ISDeploymentWizard.exe

如果您要将包部署到 SQL Server 2014,请在以下位置运行可执行文件:C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\ISDeploymentWizard.exe

然后照常按照向导安装软件包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多