加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:48:41 所属栏目:MsSql教程 来源:网络整理
导读:我们刚刚完成了从SQL 2000到SQL 2008 R2的迁移,并开始间歇性地接收带有以下两条错误消息的SqlExceptions: 从服务器接收结果时发生传输级错误. (提供者:TCP提供者,错误:0 – 信号量超时期限已过期.) 从服务器接收结果时发生传输级错误. (提供者:TCP提供者,
我们刚刚完成了从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;我相信网络被重新安排以适应单臂负载平衡架构.自从进行此更改以来,我们没有遇到间歇性连接问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读