【问题标题】:SQL Server Integration Services VersionSQL Server 集成服务版本
【发布时间】:2018-08-14 04:28:36
【问题描述】:

我有一个安装了 SQL Server 2012 的生产系统,所以这个系统有 Integration Services 11。然后我们用 SQL Server 2014 升级了系统,所以系统有两个 Integration Services 11 和 12。然后我们升级到 SQL Server 2016,因此系统现在具有三个集成服务 11、12 和 13。

我在 Internet 上进行了一些研究,我意识到即使我们升级 SQL Server,集成服务也是并行安装的。这也从 SQL Server 管理控制台得到确认。

当我在 CMD 上运行 DTEXEC 获取默认版本 11 时,这意味着我在 SSISB 目录中的 DTSX 包正在使用集成服务 11 而非最新版本运行?如果这是正确的,我该如何将其更改为最新的?

【问题讨论】:

    标签: service ssis integration


    【解决方案1】:

    我最近参与了此类讨论。之前了解 SSIS 向后兼容性很重要。

    此外,请通过其 SQL Server Data Tools 版本来参考 SSIS,因为大多数人通常以这种方式理解它。您可以将您的想法与以下提到的细节联系起来:

    SQL      Build#  PackageFormatVersion   Visual Studio Version(SSDT)
    2005       9        2                   2005
    2008      10        3                   2008
    2008 R2   10.5      3                   2008
    2012      11        6                   2010 or BI 2012
    2014      12        8                   2012 CTP2 or 2013
    2016      13        8                   2015
    

    来源:sqlstudies

    通过this microsoft document,您将了解哪个 SSIS 版本与哪个 SQL Server 兼容。

    简单地说:

    Target version of SQL Server    Development environment for SSIS packages
    2016                            SSDT 2015
    2014                            SSDT 2015 or SSDT-BI 2013
    2012                            SSDT 2015 or SSDT-BI 2012  
    

    简单来说,SSDT 2015 可以部署在 2012 年以后的任何服务器上,而 2012 年、2013 年是有限制的。

    请注意,如果您在 SSDT 2015 中打开 sql server 2012 dtsx,则无法返回从 SSDT-BI 2012 中打开它。

    如果这是正确的,我该如何将其更改为最新的?

    因此,如果要升级所有包,请通过 SSDT-2015 打开它们,选择部署版本(右键单击项目 -> 属性 -> 目标服务器版本)。

    您可以阅读有关这些更改的更多信息here(MSSQLTips)

    【讨论】:

    • 我理解您的观点,我可以为不同版本的集成服务部署包,但是当我使用 SSISDB 编目器时,使用的是哪个版本? DTSX 中的 Target 版本?
    • 是的。 Build#,来自上述表格
    • 因此,如果我有一个 PackageFormatVersion = 6 的 dtsx,并将其从 SSMS 2016 和 SQL Server 2016 导入到 SSISDB 目录中,这不会升级 PackageFormatVersion?
    • @StavrosKoureas:我什至不确定它是否会执行。在 2012 年构建的包,理想情况下需要首先在 SSDT 2015 中打开,rebuild 用于 sql 2016,然后部署。不确定直接导入是否会升级包。 . . .
    • 我刚刚做了这个,它可以部署,我也做了相反的事情。我将目标版本设置为 2016 我构建它我检查它并导入到 SQL Server 2014 上的 SSISDB...我不明白...
    【解决方案2】:

    我认为前面的答案提供了一些非常有用的信息。但是,我想我理解这里的误解:

    首先,“将其更改为最新的”有没有好处或优势。一些人认为 SSIS 2016 (11) 比 SSIS 2014 (10) 或更低版本更好 - 事实上,SSIS2012 除了添加了一些新功能和部署项目的新方法之外没有任何变化。您不会获得任何速度或性能增强。只是您可以访问一些额外的组件。

    第二,由于我上面的回答,这永远不会失败。首先,SSIS 是向后兼容的(这是微软吹嘘的——但老实说,为什么不呢?它是完全相同的产品以不同的标题销售,为什么它不能向后兼容)。其次,您以前的 SSIS 版本可以让一些功能(例如 ActiveX)在兼容模式下运行。总而言之,我认为问题的答案在于 SSIS 是向后兼容的,并且过去 3 个版本的产品没有任何变化(2012、2014 和 2016 几乎相同,2008 年之间没有性能或架构变化/2008R2 和 2012+)

    如果您想了解更多信息,请查看this link,它首先声明:

    SQL Server 2014 集成服务 (SSIS) 可以并行共存 使用 SQL Server 2008 集成服务和 SQL Server 2012 集成服务。

    【讨论】:

    • 很抱歉,但我相信“您不会获得任何速度或性能增强”这句话。这是完全错误的,因为 SSIS 2016 中引入的一项新功能是自动调整数据流中缓冲区的大小。这绝对可以提高速度。
    • @StavrosKoureas 嗨,您能参考一下具体的功能/更改吗?我当然不知道 SSIS 中的任何内容。我知道 Azure Factory 中有类似的添加,但 SSIS 中没有。
    • SSIS 在部署阶段并不是那么兼容...你会得到这样的错误zappysys.zendesk.com/hc/en-us/articles/…
    • @Photonic 同意 100%。我们不仅遇到了这个问题,而且还遇到了其他一些问题——微软在任何地方都没有记录。我个人已经浏览了每一页文档以及使用他们所有的升级顾问......无论如何你都会遇到问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    相关资源
    最近更新 更多