SQL Server2008突然连接不到本地数据库

原创 2016年08月29日 14:36:25

一、问题

  有一对SQL Server2008服务器,采用主备双节点架构,分别是A1和A2,目前群集资源都挂在A2上。开发人员通过A2登录系统进行程序开发,近一年都没有问题,前几天突然发现在A2上使用SSMS(SQL Server Management Studio)无法登录SQL Server,但应用却没有任何问题。

--SQL Server2008的版本信息如下:

  Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64)   Mar 29 2009 10:11:52   Copyright (c) 1988-2008 Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2)

二、解决

  由于从A2无法登录,但应用却没有问题,初步判断是A2上的客户端有故障。后来和微软工程师沟通后确认这是SQL Server2008的bug。我将这个故障的排查步骤列在下面,如果有相同的现象基本可以确定是同样的问题。

1.启动cmd输入如下命令

C:\Users\XXX>cd\

C:\>netstat -an >ports.txt

C:\>ports.txt

2.打开ports.txt文档后,我节选了一部分:

  TCP    10.x.x.12:65296      10.x.x.15:1433       TIME_WAIT
  TCP    10.x.x.12:65297      10.x.x.15:1433       TIME_WAIT
  TCP    10.x.x.12:65298      10.x.x.15:1433       TIME_WAIT
  TCP    10.x.x.12:65299      10.x.x.15:1433       TIME_WAIT
  TCP    10.x.x.12:65300      10.x.x.15:1433       TIME_WAIT
  TCP    10.x.x.12:65301      10.x.x.15:1433       TIME_WAIT
  TCP    10.x.x.12:65302      10.x.x.15:1433       TIME_WAIT
  TCP    10.x.x.12:65303      10.x.x.15:1433       TIME_WAIT
  TCP    10.x.x.12:65304      10.x.x.15:1433       TIME_WAIT
  TCP    10.x.x.12:65305      10.x.x.15:1433       TIME_WAIT
  TCP    10.x.x.12:65306      10.x.x.15:1433       TIME_WAIT
  TCP    10.x.x.12:65307      10.x.x.15:1433       TIME_WAIT

(我将网络拓扑细节隐藏掉了。)

10.x.x.12是A2的物理ip,10.x.x.15是SQL Server的ip。看这段netstat信息可以发现,A2的物理ip不断的连接SQL Server的ip,真实的过程是A2通过本地的SSMS连接到本地的数据库服务。因为SQL Server2008本身的bug,导致发起连接一端的port一直不释放,长年累月的积累将端口占用没了,一旦port值达到上限的65535,则SSMS无法连接数据库,而且应用连接数据库完全正常!

3.将服务切换至A1,再重启A2主机后,这些端口就释放了,之后就可以通过A2的SSMS登录数据库了。但是,一旦登录次数多了后,port值达到了上限65535后,这个问题就又会暴露出来了。



Sql2008 配置远程连接及客户端连接不上的解决方法

SQL Server 2008默认是不允许远程连接的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,远程连接数据库。需要做两个部分的配置: 1,SQL Server ...
  • yanzhibo
  • yanzhibo
  • 2013年10月31日 14:23
  • 23365

关于Java图形化连接微软SQL server(含2005,2008,2012等)数据库的问题

关于Java连接数据库(SQL server,Oracle,Mysql等)基本的汇总。新人第一篇博文,有很多不足之处,请见谅,请提议。...

C#数据库编程1--SQL server2008 连接

1.新建数据库等步骤见数据库教程http://download.csdn.net/detail/tianhen791/4582335 注意如果 已经安装VS2010   VS2010...

SQL Server2008R2 用SQLserver身份认证模式连接数据库的方法

最近在做

SQL Server 2005/2008 连接不上本地数据库引擎的解决方法

1.右键我的电脑------------管理-----------服务和应用程序----------------sql server配置管理器--------------------sql serve...

sql server 数据库 2008 r2 允许远程连接

数据库08和08R2,在配置管理器中的sql server网络配置中差一个协议。我不知道按照网上08开启远程适不适合08r2。         下面来看一下,比较全面的08R2开启远程。     ...
  • iwuio
  • iwuio
  • 2017年08月08日 21:45
  • 329

很多win8.1的用户在装了SQL server2008后在连接数据库时经常出现错误

很多win8.1的用户在装了SQL server2008后在连接数据库时经常出现错误: “在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证...

eclipse下保证jdbc以SQL身份验证方式连接SQL Server2008数据库

在连接数据库之前必须保证SQL Server 2008是采用SQL Server身份验证方式而不是windows身份验证方式。如果在安装时选用了后者,则重新设置如下:              ...

C++连接SQL SERVER2008数据库

  • 2012年07月12日 22:57
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL Server2008突然连接不到本地数据库
举报原因:
原因补充:

(最多只允许输入30个字)