当前位置: 奥门金沙手机娱乐网址 > 数据库 > 正文

Ch6连接的建立和问题排查,无法访问SQL

时间:2019-10-05 15:50来源:数据库
背景: 6.总是的创制和难题排查 对话的确立分成2个部分: 1.连连,即找到这几个实例 2.申明,告诉sqlserver什么人要一连 目录 6.一连的确立和难题排查...1 6.1协商选用和别称...1 6.1.1 服务

背景:

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检测次数超越注册表的Tcp马克斯DataRetransmissions的定义,对方如故不曾影响,就能关闭那一个不平常的再而三。

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

TcpMaxDataRetransmissions也得以在注册表上改动:

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中的LoginTimers记录了任何登录进度所话的时日。

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'

 

编辑:数据库 本文来源:Ch6连接的建立和问题排查,无法访问SQL

关键词:

  • 上一篇:没有了
  • 下一篇:没有了