【问题标题】:SSISDB v MSDB Deployment for Execute Task用于执行任务的 SSISDB v MSDB 部署
【发布时间】:2020-10-14 14:26:28
【问题描述】:

我从上次数据仓库实施中获得了一些旧的 SQL Server 2012 解决方案文件,并决定尝试让它们在 SQL 2019 中工作。整个部署工作不起作用,所以我升级了所有包,然后做了一个新的 2019 解决方案并开始添加所有现有包

问题是我是在 Cognos 工具中制作 DW 的,所以我当时正在掌握 MS 的做事方式,并且使用 Configurations 的基于包的部署是原始设置,我不知道它们是否已导入新解决方案中的包或项目部署模型,但我已将它们部署到 IS 目录 SSISDB。

我从来没有真正正确地考虑过整个部署,因为您为什么要创建要部署到的 SSISDB(似乎是在解决方案文件中右键单击),但是当您在您的包,您必须从本地文件或 MSDB 上的包存储中选择包...为什么不从 SSISDB 执行包?这意味着现在必须将所有这些包一一复制到 MSDB 包存储中,并制定维护计划以将所有包修改部署到 SSISDB,然后还要记得上传到 MSDB!?

谁能确认我的理解是正确的,我们到底为什么要这样做? 感谢您的帮助

【问题讨论】:

    标签: sql-server database deployment ssis


    【解决方案1】:

    这里有很多东西要解压...

    SSISDB

    SSISDB 是用于管理项目部署模型包的定制数据库。众多优势包括:版本化部署、本机包执行、统一的日志记录方法以及简化且安全的配置方法。

    SSISDB 存储一个项目(可部署单元具有 .ispac 扩展名)。项目是包、项目参数、项目级连接管理器(如果有)和元数据文件。 MSDB 存储包。

    部署包部署模型的机制是进程dtutil.exe。部署项目部署模型的机制是ISDeploymentWizard.exe Visual Studio 将提供将项目部署模型部署到 SSISDB 的过程,但在幕后,该过程将是 ISDeploymentWizard

    我不明白您部署到 msdb 以运行维护计划以部署到 SSISDB。这不是我在使用 SSIS 的 15 年和使用项目部署模型的 8 年中遇到的事情。您只需将项目部署到 SSISDB。

    执行打包任务

    执行包任务是一个包运行另一个包的机制。在 Package Deployment 模型中,您必须通过文件连接管理器或数据库(此处按内存)指定在何处查找包。当您启动它时,您可以指定它是在进程中(等待它完成)还是在进程外(即发即弃)。

    在项目部署模型中,您可以选择项目参考包。当你使用它时,你不需要指定包的位置,因为它就在这里,在我们的 .ispac 文件的可部署量中。

    如果您考虑包部署模型,我可以有 10 个包都专注于 Visual Studio 项目中的销售功能。它们只是“在一起”,因为我就是这样拥有它们的。一旦 Visual Studio 关闭,它们之间就没有强制/信任关系。我可以将 3 个包部署到文件系统,3 个部署到 SSIS 包存储(也是文件系统,但预定义位置),4 个部署到 msdb。或者也许只是为每个包创建一个自定义文件夹并将所有内容部署到文件系统。关键是,package1 不能假定 package2 与它处于相对位置。

    项目部署模型确实确保关系存在于 SSIS 项目范围之外。这使您能够设计在运行或使用共享资源时采用参数的包,例如连接管理器或项目范围的属性(参数)。

    可能有一个包部署模型包,该模型包期望传入运行时变量以覆盖设计时变量,但执行包任务不允许您达到那种粒度级别.

    但我想执行一个在不同项目中并使用项目部署模型的包

    在这种情况下,您无法执行 Execute Package Task。相反,您将需要一个 OLE/ADO/I-guess-ODBC-would-work-but-would-not-recommend Connection manager to your SSISDB,然后您将触发正确的 TSQL 语句。

    1. catalog.create_execution
    2. catalog.set_execution_parameter_value
    3. catalog.start_execution

    如果您想等待子程序包运行,您可能需要其中至少一个带有 SYNCHRONIZED 设置的参数。否则,您将不知道它何时完成。也许这对你的工作没问题。

    【讨论】:

    • 这是最初的大脑转储,我需要重新开始工作,但很高兴通过更有针对性的解释来完善/增强它
    • 感谢blinkc的输入,很多都在我头上,比如参数,我什至不知道它是否是一个项目部署模型,或者它是否意味着它已经进入了 SSISDB,那么它肯定是项目部署模型吗?这是否意味着我有一个 ispac 文件?
    • 但是,我从你所说的得到的一件事是基本上不使用执行包任务,使用执行 sql 任务连接到 SSISDB,这正是我所做的 & sproc从那里执行包。与链接到集成服务仪表板的所有系统日志记录和报告一起发挥魅力...
    • 如果您取消了避免执行包任务的建议,那不是我的意图。为我在这件事上的沟通不畅表示歉意。
    • 很高兴知道您为什么认为执行包任务有什么好处?如果我使用执行包任务,则该包不会从目录中执行,这意味着它没有绑定到集成服务仪表板,这非常棒扫描报告以检查作业流中的所有包执行并识别任何问题...
    猜你喜欢
    • 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
    相关资源
    最近更新 更多