4

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

消息 Microsoft (R) SQL Server Execute Package Utility Version 10.0.5500.0 for 64-bit 版权所有 (C) Microsoft Corp 1984-2005。版权所有。

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

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

消息以用户身份执行:xxxx。适用于 64 位的 Microsoft (R) SQL Server 执行包实用程序版本 11.0.2100.60 版权所有 (C) Microsoft Corporation。版权所有。开始时间:上午 8:29:18 DTExec:包执行返回 DTSER_SUCCESS (0)。开始时间:上午 8:29:18 结束时间:上午 8:59:46 经过时间:1816.76 秒。包成功执行。这一步成功了。

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

4

3 回答 3

3

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

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

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

于 2013-09-17T01:09:05.427 回答
1

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

于 2013-10-29T00:55:54.710 回答
0

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

于 2013-10-11T18:43:05.753 回答