【问题标题】:Running SSIS 2008 package on a SQL2012 instance在 SQL2012 实例上运行 SSIS 2008 包
【发布时间】:2013-09-11 16:05:51
【问题描述】:

我正在将我们的 ETL 解决方案和数据库升级到 SQL Server 2012。我已经测试了此升级,但我们对在 SQL 2012 实例上运行带有作业的 SSIS 2008 包存在争议。我了解 2008 R2 实例作业运行:

消息 Microsoft (R) SQL Server 执行包实用程序版本 10.0.5500.0 用于 64 位 版权所有 (C) Microsoft Corp 1984-2005。保留所有权利。

开始时间:凌晨 2:10:11 DTExec:包执行返回 DTSER_SUCCESS (0)...

2012 实例作业对包进行就地升级并运行:

消息以用户身份执行:xxxx。 Microsoft (R) SQL Server 执行 适用于 64 位的 Package Utility 版本 11.0.2100.60 版权所有 (C) 微软公司。版权所有。开始时间:上午 8 点 29 分 18 秒 DTExec:包执行返回 DTSER_SUCCESS (0)。开始: 上午 8:29:18 完成:上午 8:59:46 经过:1816.76 秒。这 包成功执行。步骤成功。

我的问题是:是否有任何关于这种情况的失败报告,是否可以安全地假设存在向后兼容性?

【问题讨论】:

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


    【解决方案1】:

    this page 开始,DTExec 2012 将内存中的早期版本包转换为 2012 格式。可以想象转换可能会失败,但是,应该可以测试包,如果它们成功运行一次(即转换成功),那么他们应该每次都这样做。他们的行为应该在很大程度上相似,但我不希望在所有情况下都完全等效。

    最有可能发生转换失败的情况是,如果包包含 SSIS 2012 不可用的第三方组件。

    我不会假设一个包不需要测试就可以被更高版本的DTExec运行,但是如果它运行一次成功,那么它每次运行成功的可能性很大。

    【讨论】:

      【解决方案2】:

      不是 100% 向后兼容。例如。从平面文件中提取数据且未指定行和列分隔符的 SSIS 2008 编辑包将在 2008 年工作,但如果您在 SSIS 2012 服务器上运行该包,空行和列分隔符将导致提取坚果,它将导入无数列/行(因为它永远不会找到列/行结尾)。目前对我来说是个大问题。

      【讨论】:

        【解决方案3】:

        有一个案例我发现了一个我想分享的问题: 如果您在 SSIS 2008 包中处理 SSAS 多维数据集,在极少数情况下,SSAS 数据库连接提供程序将无法使用回溯版本。见this链接

        【讨论】:

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