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后,这个问题就又会暴露出来了。


版权声明:

相关文章推荐

关于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...

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

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

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

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

VS2008 C# Sql server2008 数据库的连接,增删改查

using System.Data.SqlClient; SqlConnection conn; //连接数据库 private void Form1_L...

修改SQL Server 2005/2008 用户数据库文件默认路径和默认备份路径

以下仅为参照,如果有多个实例,可能会有些许不同: 本环境是SQL Server 2005 Standard Version 64-bit 和 SQL Server 2008 Standard V...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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