疑难杂症--由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作
在巡检数据库时发现,数据库备份作业失败,查看错误日志发现以下提示:
已以用户 WIN2008-JH122\SYSTEM 的身份执行。
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