gpt4 book ai didi

sql-server - SSIS 如何管理关闭连接?我可以强制吗?

转载 作者:行者123 更新时间:2023-12-03 00:35:55 26 4
gpt4 key购买 nike

tl;博士版本

运行几个晚上后,我在使用 OLE DB (SNC10.0) 连接管理器时遇到错误,连接可能无法正确超时吗?切换到 ADO.NET 连接管理器和源似乎可以解决这个问题,为什么?

我对通用标题表示歉意,但有太多细节无法在一行中说明。

技术:

在所有情况下,数据库服务器(源和目标)都是 SQL Server 2008 R2

设置:

我有一组 SSIS 包,它们在半夜一个接一个地运行。目前有 7 个。它们都执行一组相似的任务:首先连接到源数据库并将数据复制到临时数据库。然后他们在临时数据库中进行各种转换。最后,该进程连接到目标数据库并用数据填充它。

我将所有连接设置为 OLE DB 连接 (SQL Native Client 10.0),以便可以将它们与查找组件和其他特定于 OLE 的组件一起使用。

问题:

我们在自动运行 SSIS 包时反复遇到问题。一般来说,我会在我的站手动测试它,它会运行良好;然后我们将SSIS包保存到SQL Server中并安排它,它就会正常运行。几天后的晚上,我们会遇到如下问题:

SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft OLE DB Provider for SQL Server" Hresult: 0x80004005 Description: "Protocol error in TDS stream".

SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Unknown token received from SQL Server".

在线搜索时,这两个问题都指向连接问题,特别是网络连接问题。

解决方法:

我发现解决这些问题的一个快速(如果并不总是简单)的解决方案是用 ADO NET 源而不是 OLE DB 源替换源节点。在某些情况下,这在我的数据流任务中是可以接受的,但在我需要使用查找组件或仅适用于 OLE 源的其他此类工具的情况下,如果我仍然遇到这种情况,这不是一个足够好的解决方案这些问题。

问题:

我知道 ADO.NET 和 OLE DB 连接之间存在大量差异,但我注意到的一件主要事情是 OLE DB 连接管理器有两个超时,两者都默认值“0”,这通常意味着禁用(没有超时)。 ADO.NET 连接管理器有一个超时,并将其设置为值“15”(15 秒)。

这两个连接管理器如何处理超时和关闭连接?当 OLE DB 连接管理器超时值为 0 时,除非在 SQL Server 上执行某些操作,否则该连接将永远不会关闭吗?这可能是我的问题的一部分,有这么多数据流任务打开 OLE DB 连接然后没有关闭?我可以在 SSIS 包中执行任何操作来强制关闭这些连接吗?

****编辑****

这是相关数据流任务的屏幕截图。我更改了一些名字以保护无辜者等。

enter image description here

如图所示的任务将完全正常运行并且 100% 的时间都有效。如果我将该 ADO.NET 源更改为 OLE DB 源,我会收到帖子中提到的错误。在其他一些情况下,我通过扩展源查询来完成并消除查找。在这个任务中我没有。

最佳答案

我们找出了所有问题的根源是什么,以及问题描述与环境描述不符以及没有足够线索解决的原因。

最后一切都崩溃了,我们发现“网络或服务器上没有任何变化”并非如此。

我们工作期间发生了一次备份。该备份使用卷影复制并备份生产数据库和 tempdb。由于磁盘 IO 问题/锁定,tempdb 由于未写入的更改而增长到半太字节,然后进一步尝试进行卷影复制。

关闭 tempdb 和生产数据库上的备份/卷影副本会导致作业立即完成。过去需要 > 30 分钟的查询现在只需 < 1 分钟。

感谢你们一直支持我并认真思考。

关于sql-server - SSIS 如何管理关闭连接?我可以强制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13733692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com