[20170713] 不能够访谈SQL Server

2019-07-22 23:35栏目:网站首页

背景:

6.一而再的创立和主题素材排查

对话的确立分成2个部分:

1.连连,即找到那一个实例

2.证实,告诉sql server什么人要三番五次

目录

6.接连的确立和难点排查... 1

6.1磋商选取和外号... 1

6.1.1 服务器网络配置... 1

6.1.2 SQL Server Browser的作用... 1

6.1.3 客户端互连网配置... 2

6.1.4 客户端互联网连接选用机制... 2

6.2 连接退步检验步骤——命名管道... 2

6.3老是失利检查实验步骤——TCP/IP. 2

6.3.1 SQL Server监听TCP/IP端口... 2

6.3.2 客户端TCP/IP协议配置... 2

6.3.3 TCP/IP连接keepalive机制... 3

6.3.4 配置SQL Server的keepalive. 3

6.3.5 配置客户端的keepalive. 3

6.3.6 TCP/IP连接难题的缓和步骤... 3

6.4惯常网络错误... 4

6.5 利用Ring Buffer排查连接难题... 4

 

 

  朋友的条件第二天陡然探问不了SQL Server,远程SQL Server用户相当的小概登入,可是地点SQL Server用户登入平常。

6.1合计选取和别称

常用协议有3种:

1.Shard Memory:本地访谈会选用的,一般用不到

2.TCP/IP

3.Named Pipes:命名管道不是基于网络协议的,而是基于Server Message Block套件的一种协议,使用IPC$分享来无缝和透明的传输数据和用户认证上下文,在拜望IPC$分享的时候先要通过Windows认证,那也是命名管道的裨益之一。

报错:

6.1.1 服务器互连网陈设

SQL Server的配置处理器能够设置各样体协会议的拉开和停业。配置好协商之后重启服务,会在errorlog中看看服务是不是正规运转。

  用户XX登陆退步(MicroSoft SQL Server,错误18456)

6.1.2 SQL Server Browser的作用

对此命名实例,每一遍运行绑定的端口不相同样。所以SQL Server开垦了一套SQL Server分析协议(SSRP)用来监听UDP1434端口。当七个客户端要访谈那台服务器上的SQL Server实例,都会先掌握UDP1434端口,然后由SSRP协议告诉客户端本台服务器上所设置的SQL Server实例的端口号及命名管道。

SQL Server Browser最小权限如下:

1.回绝通过互联网访谈该计算机

2.驳回本地登陆

3.不肯以批管理作业登陆

4.回绝通过“终端服务”登陆

5.看成劳动登入

6.读写与网络通讯相关的SQL Server注册项

SQL Server Browser读取注册表音信,识别Computer上的有着实例,并注脚他们利用的端口和命名管道。

排查:

6.1.3 客户端网络配置

客户端有4中驱动:

1.MDAC依旧WDAC,基于windows,无需设置,能够经过cliconfg.exe配置

2.SQL Server Native Client,SQL Server带的安装了才有,随SQL Server版本变化而转变。在SQL Server配置管理器也得以对Native Client进行配备。

3.SQLClient,客户端应用程序使用的是托管编制程序代码,近期一般选用ADO.NET来延续SQL Server。SQLClient未有一直配置工具,是遵守Shared Memory->TCP/IP->Named Pipes顺序来一连的。

4.JDBC,用来给Java程序连接SQL Server。

  对与不能连接服务器的,一般的排查花招,也是最常用的手段。

6.1.4 客户端网络连接选用机制

SQL Server网络连接机制:

1.SQL Server有投机的互连网协议,配置选项,决定SQL Server侦听什么协议

2.一台服务器上得以有七个SQL Server实例,每一个实例使用不相同的端口和管道。SQL Server Browser通过读取注册表知道全体实例的互联网布局消息。

3.客户端的数据库连接组件上得以布置候选的互联网协议。

客户端开启了多少个网络协议,一般最后决定运用什么协议的次第如下:

1.连接字符串中钦赐协议

2.客户端外号

3.招来对应数据驱动的LastConnect注册记录

4.透过SQL Server Browser得知端口号恐怕管道名称

  1.因为本地登入平常,那么查看1433端口是不是监听。

6.2 连接失利检查实验步骤——命名管道

  2.远程 telnet 1433 端口是还是不是通的。

6.3一连失利检验步骤——TCP/IP

  经过排查开采,监听平常,telnet 也是通的。

6.3.1 SQL Server监听TCP/IP端口

SQL Server监听端口,可感到机械上的每一种IP地址都安装单独的端口号(无法配备出来),也得以为具有的IP设置统一的端口号。

  今年就开首悄然了,telnet 通的按理没理由无法连接到长途服务器上。于是小编利用SQLCMD登入细心看看 18456的不当的state 到底是有个别,开采State是1。

6.3.2 客户端TCP/IP协议配置

  到此地就无解了,一贯没见过如此的场合。

6.3.3 TCP/IP连接keepalive机制

客户端和服务器之间的tcp连接是长连接,当客户端连接到服务器的时候内定了keepaliveinterval和keepalivetime参数,在接连空闲时间超越keepalivetime,tcp就能够以keepaliveinterval为距离自动发出keepalive包测验连接是或不是存活。要是keepalive检查测量试验次数超过注册表的TcpMaxDataRetransmissions的定义,对方要么不曾影响,就能关闭这些有标题标总是。

Sql server的keepalivetime为30s,keepaliveinterval为1s,windows tcp配置暗中同意Tcp马克斯DataRetransmissions为5s。

服务端的管服务端的,客户端的管客户端的,然而其余一个超过阀值都会停业连接。

处理:

6.3.4 配置SQL Server的keepalive

能够在SQL Server配置管理器中配备tcp的keepalive时间。当然也足以在注册表上修改。

HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQL12.MSSQLSERVER MSSQLServerSuperSocketNetLibTcp

Tcp马克斯DataRetransmissions也足以在注册表上修修改改:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesTcpipParameters

  入眼来了,第二天,笔者恋人和自小编说,是因为加了网闸设备形成的。

6.3.5 配置客户端的keepalive

其余客户端都有keepalive机制,keepalivetime为30s,keepaliveinterval为1s。当中独有native client能够在SQL Server配置管理器上改变。

图片 1

本来可以在注册表上改变

 

6.3.6 TCP/IP连接难题的化解步骤

缓和难点思路:

1.证实SQL Server是不是监听端口,能够查阅错误日志

2.认证SQL Server监听的端口和配备的值是还是不是同样

3.反省互联网是或不是健康

4.telnet翻看是不是足以连接到有个别端口

5.反省登入用户权限

6.3.6.1 监听八个端口

三个端口的监听,能够在装置端口是用逗号隔离

图片 2

6.3.6.2 端口绑定战败

端口绑定失败,在运行是时候会报错。

能够查阅端口是不是被占用

6.3.6.3 检查延续使用的磋商

SELECT*FROMsys.dm_exec_connections

6.3.6.4 访谈防火墙后的SQL Server

6.4一般性网络错误

6.5 利用Ring Buffer排查连接难题

Ring Buffer,能够捕捉各种由服务器发起的关门连接记录,满含会话极度中断可能登录退步,Ring Buffer最多一千条数据。

Connectivity Ring Buffer有3种记录:ConnectionClose,Error,LoginTimers。

Connectivity Ring Buffer能够使你在无法利用NetWork Monitor景况下消除困难的标题。

Connectivity Ring Buffer中的Login提姆ers记录了全套登入进度所话的时间。

SELECTCAST(record ASXML) record

       ,CAST( record ASXML). value('(//Record/ConnectivityTraceRecord/RecordTime)[1]','datetime')  recordtime

       ,CAST( record ASXML). value('(//Record/ConnectivityTraceRecord/RecordType)[1]','varchar(20)')  Recordtype

FROMsys.dm_os_ring_buffers

WHERE ring_buffer_type ='RING_BUFFER_CONNECTIVITY'

 

版权声明:本文由威尼斯人app发布于网站首页,转载请注明出处:[20170713] 不能够访谈SQL Server

    随机看看

    NEW ARTICLE

    热门文章

    HOT ARTICLE