将 SSIS 包 运行 计划为 运行 作为 SQL 服务器代理作业时的错误消息:"An OLE DB error has occurred. Error code: 0x80004005"

Error message when an SSIS package runs that is scheduled to run as a SQL Server Agent job: "An OLE DB error has occurred. Error code: 0x80004005"

对于我的每个数据流任务,我在 SSIS 中收到以下错误“发生 OLE DB 错误。错误代码:0x80004005”。

当我将所有数据流任务的 'delay validation' 设置为 'True' 并执行我的包时,集成工作正常。

但是 SQL 代理工作没有 运行。

据我所知,这是因为我设置了 'to_update' 个临时表作为中间人。下面的 Microsoft 文章似乎支持这一点。

https://support.microsoft.com/en-us/topic/error-message-when-an-ssis-package-runs-that-is-scheduled-to-run-as-a-sql-server-agent-job-an-ole-db-error-has-occurred-error-code-0x80004005-6a687a1f-917a-d3ae-4d3a-44e7dae82988

正如文章所说,我的下一步是 'change the permissions for the Temp directory of the SQL Server Agent Service startup account. Grant the Read permission and the Write permission to the SQL Server 2005 Agent proxy account for this directory.',但老实说,我不知道我会在哪里做这件事(我是 SSIS 世界的新手!)

如果有人能指出正确的方向,我将不胜感激。

有几件事需要考虑,延迟验证可能是转移注意力,与错误无关,也可能是代理正在调用不延迟的旧版本包验证。因此,首先要确保带有延迟验证的包已正确部署,并且它是由 SQL Agent 运行

然后,如果问题仍然存在,可能是权限问题,或者 Temp 目录 运行 正在 space 之外,值得检查一下。

最后,如果涉及到权限问题,那么无论谁负责维护数据库,我假设有一个 DBA,都应该检查 运行 从 SQL 中下载包的帐户是什么] 代理并确保它具有正确的权限。

要检查的另一件事:

确保 运行 正确,如果不正确 运行 宁作为 32 位试试,反之亦然。

花了更多时间后,问题似乎实际上与磁盘 space 有关,我使用的服务器上的内存 运行ning 为 100%,SQL 代理工作 运行 宁但非常缓慢而且从未真正 运行 成功。我结束了几个进程并在每个 SQL 作业 运行 时错开,因此它们不会同时触发,并且这些 运行 再次成功。