【问题标题】:How do I read project connections in ssis from SQL Server Agent Job?如何从 SQL Server 代理作业读取 ssis 中的项目连接?
【发布时间】:2014-08-05 07:55:30
【问题描述】:

我正在尝试通过 SQL Server 代理作业运行我的 SSIS 包。在 SSIS 项目中,我将连接到我的 SQL 数据库作为项目连接。我已经像这样设置它们,因为所有包都调用这个连接。但是,在 SQL Server 代理中运行它时,我收到错误消息:

未找到连接“{}”。当找不到特定的连接元素时,Connections 集合会抛出此错误。

它显然无法找到连接,我该怎么做呢? - 包通过Visual Studio执行成功。

提前致谢! 巴尔

【问题讨论】:

  • 我们需要更多信息。从您的代理作业发布 SSIS 步骤。哪种类型的连接管理器出现故障。您的标题表明您正在尝试“阅读”它们 - 是您正在做的特定事情还是反映了您认为项目连接不被尊重的假设。您是否知道 SQL 代理帐户或委派代理对托管 SSIS 包的服务器以及项目连接管理器的目标具有连接和读取权限?
  • 连接是一个 OLE DB 连接。是的,SQL 代理作业无法读取连接(在 Visual Studio 中,当我将 OLE DB 连接更改为包连接时,它一直成功执行,但不是在项目连接时。)服务器具有正确的权限当连接是包连接时可以运行包。
  • 请从您的代理工作中发布 SSIS 步骤的定义。在需要混淆敏感信息时进行擦洗。就问题而言,没有足够的有形事实可供某人帮助诊断问题。在我使用项目部署模型的 2 年多的时间里,我没有遇到过项目级连接方面的挑战。
  • 你的SSIS项目是如何部署的???我猜你的 SQL Server 代理工作只是进入文件系统并调用包。这显然会导致错误,因为您的 SSIS 项目对工作代理不可见。您应该尝试在服务器上部署项目以使其正常工作。
  • SSIS 包保存在服务器的 C 驱动器中,因此对 SQL Server 代理可见。在 Visual Studio 中,我已将项目连接更改为包连接,并且 SQL Server 代理成功完成了工作,但这不是维护连接的实用方法,因为我现在每个包有 1 个连接 - 当 OLE DB 连接是项目连接 SQL Server 代理找不到连接。我会尝试发布屏幕截图,但我还没有足够的声望点。包源是“文件系统”。

标签: ssis sql-server-agent sql-agent-job


【解决方案1】:

首先,您需要在您的服务器实例上create an Integration Services Catalog。您将把您的包部署到目录中。

在连接管理器中指定服务器的最佳做法是使用单个句点,它引用本地计算机。这样,当您部署包时,将始终使用本地计算机:

使用项目级连接创建包后,您需要部署项目。右键单击 SQL Server Data Tools/BIDS 中的项目文件夹,然后单击部署。在部署向导中,指定目标服务器(或再次使用“.”来部署到本地实例)和 Integration Services (IS) 目录文件夹:

部署到 SQL Server 实例的 IS 目录后,您可以将作业步骤属性中的包源设置为“SSIS 目录”并选择您部署的包。

如果要从文件导出/导入文件,则需要确保 SQL Server 代理服务帐户对导入/导出文件的文件夹具有适当的权限。最简单的方法是 create a credential(通常是 Windows 用户帐户),然后是使用凭据的 create a SQL Server Agent Proxy,然后在作业步骤的 Run as 字段中指定该代理。

在完成上述所有步骤后,您的“作业步骤属性”窗口将如下所示:

然后作业应该会成功运行。

仅供参考,您也可以直接从 SSIS 目录执行包。只需深入了解您的服务器的集成服务目录节点 |右键单击包|点击执行....

有用的链接

【讨论】:

    【解决方案2】:

    如果您在 SQL Server 作业的步骤属性中的配置选项卡上设置配置,那么您应该可以完成您的要求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多