疑难杂症--由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作

在巡检数据库时发现,数据库备份作业失败,查看错误日志发现以下提示:

已以用户 WIN2008-JH122SYSTEM 的身份执行。
Microsoft (R) SQL Server 执行包实用工具  Version 10.0.4000.0 for 64-bit  版权所有 (C) Microsoft Corp 1984-2005。保留所有权利。   
开始时间:  10:05:51  错误: 2014-02-07 10:06:09.78    
代码: 0xC00291EC     源: {F9B6515C-4690-4547-9CC4-B4919669D102} 执行 SQL 任务    
说明: 未能获取连接“本地服务器连接”。
原因可能是连接配置不正确,或者您没有访问该连接的适当权限。 
错误结束 
警告: 2014-02-07 10:06:09.81    
代码: 0x80019002     源: OnPreExecute     
说明: SSIS 警告代码 DTS_W_MAXIMUMERRORCOUNTREACHED。Execution 方法成功,但出现的错误数(1)达到了允许的最大值(1),因此导致失败。当错误数达到 MaximumErrorCount 中指定的数目时将发生这种情况。请更改 MaximumErrorCount 或纠正这些错误。 
警告结束  错误: 2014-02-07 10:06:24.55    
代码: 0xC0024104    
源: “清除维护”任务     
说明: 任务的 Execute 方法返回错误代码 0x80131904 (在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。
未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。(provider: TCP 提供程序, error: 0 - 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。))。Execute 方法必须成功,并使用 "out" 参数指示该结果。 
错误结束 
错误: 2014-02-07 10:06:30.14    
代码: 0xC0024104    
源: {2813CD03-67A3-4A65-8419-91BE0F316A00}     
说明: 任务的 Execute 方法返回错误代码 0x80131501 (执行 Transact-SQL 语句或批处理时发生了异常。)。Execute 方法必须成功,并使用 "out" 参数指示该结果。 
错误结束 
警告: 2014-02-07 10:06:30.14    
代码: 0x80019002   
源: OnPostExecute     
说明: SSIS 警告代码 DTS_W_MAXIMUMERRORCOUNTREACHED。Execution 方法成功,但出现的错误数(2)达到了允许的最大值(1),因此导致失败。当错误数达到 MaximumErrorCount 中指定的数目时将发生这种情况。请更改 MaximumErrorCount 或纠正这些错误。  警告结束  DTExec: 已返回包执行 DTSER_FAILURE (1)。  开始时间:  10:05:51  完成时间: 10:06:30  占用时间:  38.828 秒.  包执行失败。.  该步骤失败。

1.首先检查"原因可能是连接配置不正确,或者您没有访问该连接的适当权限。"

经确认,最近未对数据库做任何变更,连接设置和权限均正确,排除该可疑点。

2.检查"由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作"

使用 NETSTAT -ano>C:NET.TXT

在文件C:NET.TXT的尾部发现

 TCP    192.168.1.122:65529    192.168.1.124:53343    FIN_WAIT_2      22668
  TCP    192.168.1.122:65530    192.168.1.124:53017    FIN_WAIT_2      14508
  TCP    192.168.1.122:65531    192.168.1.124:64365    FIN_WAIT_2      23160
  TCP    192.168.1.122:65532    192.168.1.124:58246    FIN_WAIT_2      23064
  TCP    192.168.1.122:65533    192.168.1.124:53019    FIN_WAIT_2      14508
  TCP    192.168.1.122:65534    192.168.1.124:59146    FIN_WAIT_2      24056
  TCP    192.168.1.122:65535    192.168.1.124:53612    FIN_WAIT_2      23692

证明该服务器上套接字端口已被分配完,无法再为新的SQL SERVER 连接分配端口,因此导致备份失败。

解决办法:重启服务器,释放端口

后续处理:调研服务器192.168.1.124使用过多端口的原因

补充:除SQL SERVER外,很多用于与其他服务器同步或共享数据的软件也会快速消费"套接字端口",从而导致端口在短时间内被耗光。

WIN SERVER 497天重启问题

http://support.microsoft.com/kb/2553549/zh-tw

原文地址:https://www.cnblogs.com/TeyGao/p/3539279.html