【问题标题】:I have a production SSIS project and I need to change the destination server. Can I just edit the project or do I need to repackage it?我有一个生产 SSIS 项目,我需要更改目标服务器。我可以只编辑项目还是需要重新打包?
【发布时间】:2022-04-20 03:41:42
【问题描述】:

我在 SQL Server 2016 中有一个生产 SSIS 项目,它创建一个平面文件并将其导出到另一台服务器。目标服务器已报废,我需要更改新服务器的目标路径,以便我们可以停用旧服务器。我可以只在 Visual Studio 中编辑包或项目,还是需要重新编译(重新部署?重新发布?)?我以前从未编辑过,只创建了新项目,但那是几年前的事了,我有点生疏了。

或者,我可以复制现有作业,编辑副本,然后先并行运行它们。然后,一旦我确信新项目/包可以工作,我就可以禁用旧项目/包。我也没有太多运气弄清楚如何做到这一点。

任何帮助,将不胜感激。谢谢!

【问题讨论】:

    标签: ssis visual-studio-2015 edit flatfiledestination


    【解决方案1】:

    如果我正确理解您的问题,听起来您的目标只是更改报告的目标位置。您需要更新 SSIS 包内平面文件连接的连接管理器。

    您需要编辑平面文件连接管理器的连接字符串(通过加载连接管理器属性并自己更改值或更改表达式,如果它已参数化)。一旦您确认它现在指向正确的服务器位置以保存您正在生成的报告,您将重建整个包并重新部署它,这实际上会用您的更新覆盖部署服务器上的 .ispac 和 .dtsx 文件。

    【讨论】:

    • 我可以用新名称重新部署吗?在我知道新的连接有效之前,我不想终止当前的工作。我只是在更改 UNC 路径。谢谢。
    • 如果您能够在本地运行包,则可以在重新部署包之前进行测试以确保连接字符串有效。我建议这样做,然后重新部署现有的包,而不是重命名它以避免将来混淆。
    • 谢谢我在VS中编辑了原始项目,然后重新打包并重新部署。我还编辑了连接字符串,并且必须在新服务器上创建一个共享。成功!谢谢大家的快速回复!
    • 绝对地!很高兴这对您来说是成功的并且问题得到了解决。
    【解决方案2】:

    “视情况而定”的标准警告,但最常见的情况是您可以通过配置解决此问题。

    根据设置的方式右键单击包(或项目)。在“连接管理器”选项卡中,找到与平面文件输出对应的连接管理器(强命名标准有帮助)。我选择了 SO_61794511.dtsx 并且名称是 Flat File Conn... 然后允许填充右侧菜单。

    这里感兴趣的是ConnectionString。我将直接编辑它以从 C:ssisdatainputso_61794511.txt 更改为我的新路径 D:pathheresomethingso_newthing.txt

    单击 OK 2x,下次运行包时,它将使用配置的值。

    这是最简单的方法。如果您编辑运行包的作业以在每次执行时设置值,您可以完成类似的事情,但这只是在全球范围内完成。

    如果有一个表达式应用于 ConnectionString 属性,那么这可能会出轨,例如输出文件的文件名中有一个动态日期。这就是为什么我提倡公开“基本文件路径”概念的包或项目级别参数的原因。这允许我通过设置配置而不是将路径硬编码到包本身中来将路径从 C:(本地开发)更改为 D:(服务器部署),甚至更改为 UNC 路径 servershare。

    【讨论】:

    • 名称是静态的,我使用 UNC 路径。正在改变的是 UNC 路径。我可以轻松地编辑 ConnectionString。我只是不知道我是否必须重新部署它。
    • 不,一旦您设置了配置,后续执行将使用这些默认值(直到作业定义中提供了明确的值)
    • 谢谢我在VS中编辑了原始项目,然后重新打包并重新部署。我还编辑了连接字符串,并且必须在新服务器上创建一个共享。成功!谢谢大家的快速回复!
    猜你喜欢
    • 1970-01-01
    • 2019-11-03
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 2016-02-19
    相关资源
    最近更新 更多