简而言之,一个周末之后,我开始收到有关 SQL Server 代理中的某些作业失败的错误。
我发现该问题仅出现在 X 服务器中,并且当我尝试使用数据流任务时,但相同的包在任何其他服务器上都可以正常运行。
我不确定服务器中的哪个组件或服务负责两个数据库(特别是 OLE DB 目标)之间的传输协调,我在 MSDTDC 服务中发现了一些错误,我能够修复它,但问题仍然存在,现在日志中没有更多错误,但是当我开始通过 Dataflow 使用任何类型的目标(.Net、OLE DB)传输数据时,传输有时会立即失败,有时它开始传输正常,但传输速度非常慢,传输速度降低到超时。以下是我收到的一些错误日志:
[OLE DB 目标 [2]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生了 OLE DB 错误。错误代码:0x80004005。OLE DB 记录可用。来源:“Microsoft OLE DB Driver for SQL Server”Hresult:0x80004005 描述:“通信链接失败”。OLE DB 记录可用。来源:“Microsoft OLE DB Driver for SQL Server”Hresult:0x80004005 描述:“TCP 提供程序:指定的网络名称不再可用。”。
到目前为止,我所做的工作是排除以下故障:
- 检查两个数据库、源数据库和目标数据库(均处于完好状态)。
- 将包移至另一台服务器,它就可以正常工作。
- 已修复 MSDTC 服务,根据日志显示其不再失败。
- 当前环境VS2015,安装了VS2019+SSIS包,仍然看到同样的问题。
- 删除了过去两周内发生的所有 Windows 更新,但问题仍然存在。
- 尝试不同的目标驱动程序,OLE DB,.Net,ODBC,仍然是同样的问题。
附注:有趣的是,只要不是 SQL 到 SQL,我就可以使用数据流,Oracle 到 SQL 就可以正常工作,而且传输服务器对象和以这种方式传输表也可以正常工作。
任何帮助都将受到高度赞赏。