【问题标题】:Script Task Corrupt - SSISDB execution error after upgrading from SQL Server 2016 to SQL Server 2016 SP2脚本任务损坏 - 从 SQL Server 2016 升级到 SQL Server 2016 SP2 后 SSISDB 执行错误
【发布时间】:2018-11-27 20:28:08
【问题描述】:

我们最近将生产 SQL Server 2016 Enterprise 实例从 SP1 更新到了 SP2。我们目前使用的是 13.0.5026 版本。在升级之前,具有 SSISDB 连接权限和对 Integration Services 目录文件夹具有适当权限的用户可以成功部署 ISPAC 文件。

升级后,同样的用户仍然可以部署到SSISDB,但是当你执行.DTSX时,里面的脚本任务验证失败。如果我部署与系统管理员完全相同的 ISPAC,则没有问题。我看到的常用解决方案是确认 SSDT 配置属性设置为 SQL Server 2016。我们在构建 ISPAC 之前验证了此设置是否正确。

几年前从 SQL Server 2014 迁移到 2016 时,我看到了类似的问题,但当时的解决方案是为运行包的代理帐户授予对 C:\Windows\Temp 文件夹的修改权限,以便它可以生成临时文件。这个新问题很难确定,我不想为了让其他人可以执行简单的部署步骤而给出系统管理员。

感谢任何想法或建议。

************更新/编辑************:

服务器有一个位于 SQL Server/130/DTS/Binn 下的 SQL Server 2016 部署工具 - ISDeploymentWizard.exe。此部署工具有效。在 140/DTS/Binn 位置下还有另一个相同的向导,名称相同但大 1 KB(假设这是因为 SSMS 现在是单独安装,我在服务器上安装了最新和最好的)。这个部署失败。我正在用头撞墙,为什么一个有效而另一个无效。在本地,我们都使用 SSMS 2017,然后我们得到 140/DTS/Binn ISDeployment 文件,而不是 130(因为那是 SQL Server 2016,我们使用的是 SSMS 2017,我认为它是向后兼容的)。不管怎样,这个问题才刚刚开始出现,我们已经使用同一个版本的 SSMS 几个月了。

Image of the Execution information report from SSMS

【问题讨论】:

  • 您可以随时比较转换后的.dtsx 文件,看看是否有确凿证据。比较这些并不有趣,但是我对脚本任务从公认的旧版本转换为 2017 年的脚本任务感到悲痛不已,向导们只是忽略了这样做——我最终不得不手动编辑包来制作脚本任务项目定义与在全新包中创建的“vanilla”脚本任务相匹配。如果您的软件包仍在使用旧版本,并且您依靠即时升级来挽救局面,他们可能不会这样做。
  • 嗨 raveseer,我遇到了同样的错误,但在我的情况下需要在 SQL Server 2014 中部署项目。我可以使用 130/DTS/Binn 位置下的向导还是必须使用其他?
  • 您好 Sql 程序员,130 文件夹下的向导适用于 SQL Server 2016。如果您尝试使用它,您可能会遇到与使用 140 版本相同的问题,因为您使用的是比您的 SQL Server 版本新的部署实用程序。我建议您找到合适的 120 兼容版本来进行部署。同样,我不确定它是否适合您,您需要进行测试。谢谢。

标签: sql-server sql-server-2016


【解决方案1】:

最近解决了与 C# 脚本类似的问题。简而言之:不要将 140 版本的 ISDeploymentWizard.exe 与 MS SQL 2016 一起使用。它显然会破坏 C# 代码或组件属性中的某些内容,并且 2016 运行时停止识别它们。

在我的例子中,一个带有 C# 脚本源的包在验证阶段开始抛出以下错误:

错误:Microsoft.SqlServer.Dts.Pipeline.ComponentVersionMismatchException:

C# source component name的版本与此不兼容 数据流的版本。 [[版本或管道版本或两者用于 指定的组件高于当前版本。这 包可能是在新版本的 DTS 或组件上创建的 比安装在当前 PC 上。]] 在 Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostCheckAndPerformUpgrade(IDTSManagedComponentWrapper100 包装器,Int32 lPipelineVersion)

第一条评论here 帮助我最终确定了原因。

【讨论】:

  • 谢谢罗杰。我只是来更新我的帖子,因为我昨天发现了同样的事情。显然只是因为他们使 Data Tools 与以前的版本向后兼容,他们并没有对 ISDeploymentWizard 做同样的事情。我们能够成功使用 130/DTS/Binn 版本,并且我们正在开发人员机器上并排安装 SSDT 2016 以获取 130 版本的实用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
  • 2020-03-31
相关资源
最近更新 更多