sql-server-2008 – 数据库迁移后排除SQL连接问题

前端之家收集整理的这篇文章主要介绍了sql-server-2008 – 数据库迁移后排除SQL连接问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们刚刚完成了从sql 2000到sql 2008 R2的迁移,并开始间歇性地接收带有以下两条错误消息的sqlExceptions:

>从服务器接收结果时发生传输级错误. (提供者:TCP提供者,错误:0 – 信号量超时期限已过期.)
>从服务器接收结果时发生传输级错误. (提供者:TCP提供者,错误:0 – 信号量超时期限已过期.)

我们有3个连接到此sql Server的Web服务器,运行大约100个应用程序(所有访问sql Server上的相同8个数据库).

因为在2000服务器上没有发生这些异常,我们觉得它不太可能成为应用程序问题(但是,我们并没有排除它).网站上的流量是典型的,排除了高流量问题.旧的sql 2000机箱有4个cpu和8 GB RAM,而新的则有24 GB RAM和16个cpu(目前和期间未充分利用).

这些错误在几个小时前发生了大约5分钟,并且还没有再发生.

sys.dm_os_ring_buffers系统视图不显示这些断开连接的条目,并且服务器或客户端上没有相应的事件日志条目.

一些谷歌搜索发现了一些类似的报道,但似乎没有什么是明确的(见下面的链接).从sql 2000迁移到sql 2008 R2后,有没有人看到过这样的错误

链接

> https://stackoverflow.com/questions/810673/connection-problems-with-sql-server-in-asp-net-applications-using-out-of-process
> http://blogs.msdn.com/b/spike/archive/2009/04/16/a-transport-level-error-has-occurred-when-sending-the-request-to-the-server-provider-tcp-provider-error-0-an-existing-connection-was-forcibly-closed-by-the-remote-host.aspx

解决方法

我们已经在我们的环境中追踪并解决了这个问题.我理解的描述如下(请原谅以下潜在的不准确之处;这是我(作为软件开发人员)理解我们的网络管理员(也与我们的托管公司合作)给我的描述的方式.

最终将原因作为涉及Load Balancer的网络配置问题进行跟踪.我们原本期望Load Balancer位于互联网和我们的Web服务器之间,并且我们所有的服务器都是相互自由通信的.遗憾的是,网络的设置方式使得所有网络流量(包括sql Server和Web服务器之间的流量)都通过负载均衡器. Load Balancer配置为限制通过它的带宽,当超过限制时,它只是丢弃数据包.在服务器之间发生大型文件传输时(例如,从数据库服务器复制数据库备份等),通常会超出限制.这对我们来说很难看到,因为我们无法访问Load Balancer(只有我们的托管服务提供商可以访问它),而且据我们所知,我们远远没有使我们的网络接口饱和.此外,这些问题非常零散(每3-5个月就会有几分钟).

修复是重新安排环境,以便我们的内部网络流量不通过LB;我相信网络被重新安排以适应单臂负载平衡架构.自从进行此更改以来,我们没有遇到间歇性连接问题.

猜你在找的MsSQL相关文章