sql-server - SQL Server 代理作业停止 SSIS 步骤,出现“意外错误”且没有任何错误信息
问题描述
我正在处理一些 Windows Server 2019 (Core) 上的问题,每个运行 SQL Server 2019 CU4 实例。
我们尝试做什么
我们目前正在构建一个带有分布式数据库的数据仓库。DWH 的各个层分别位于一个数据库服务器上。层/服务器之间的数据交换通过 SSIS ETL 进行,它使用链接服务器到达其他层并拖放数据。每一层也有自己的 SSIS 服务实例并执行相应的 SSIS 数据包。SSIS 包由 SQL Server 代理作业调用。我们有一个执行 SSIS 数据包 (#1) 的作业,它反过来调用另一个作业 (#2) 作为最后一步,在短暂的等待时间后执行调用作业 (#1)。因此,在时间表的控制下,创建了一个循环,并使用 ETL 连续传输数据。
我希望这不是太多不必要的背景
错误
基本上工作正在运行并且有许多成功的执行。但是,我们观察到作业 #1 的中断,但没有关于错误的有用信息。这意味着作业历史日志是指 SSIS 日志,它再次只包含“意外终止”。在 SSIS 日志中,我们只看到表明当时活动的 ETL 数据包在验证后停止的行为。根据日志级别,根本不会记录任何内容,甚至没有执行项目的单个包。发生此错误的包不同,不限于特定的包。
我已经尝试过的
- 手动重新创建作业和 SSIS 环境(之前编写过脚本)
- 使用 32 位运行时
- 将 SSIS 项目/包版本升级到 2019
- 将日志级别提高到“详细”
- 将 SQL Server 修补到 CU4
- 保存 ssis 转储文件(找不到或未创建)
- 搜索 Windows 和 SQL Server 日志文件
有没有人有一些建议或一些想法如何成为更多的错误特定信息?
非常感谢并保重:)
更新我们有一条错误消息(OLE DB 0xC0202009 和 0X80004005)! 为了排除使用环境的原因,我在 SSIS 作业步骤中手动设置了参数,而不是通过选择环境来覆盖它们。
长话短说:今天事实证明 OLE DB 连接字符串的参数未正确传递。
但是,在错误消息的上下文中指定了以下连接字符串: 请注意,某些参数被两次添加到参数(红色)。
是什么原因造成的?
解决方案
推荐阅读
- c# - 为什么这段代码使用 Async 方法?
- c# - Linq 查询显式加载相关数据
- javascript - 使用jquery blur时如何防止空输入字段被认为是错误的
- double - USQL 转义引号
- java - 如何使用 Google 帐户凭据 OAuth2 (Java) 从 Google 注销
- c# - 如何使用 azure webjob 每 12 点大规模发送电子邮件报告?
- mysql - 使用 OR 条件的 MySQL 连接性能问题
- javascript - 排列/格式化html和js代码
- php - 如何使用邻接树方法在二叉树下获得空闲槽
- python - 在 Google App Engine 中使用 Python 的私有存储库