Прерывистое подключение сбрасывается с SSMS (с виртуальной машины данных Azure Data) на базу данных SQL Azure - PullRequest
0 голосов
/ 14 марта 2019

Я подключаюсь к своей базе данных Azure sql из SSMS, размещенной на виртуальной машине Azure Data science.Я испытываю частые падения соединения с базой данных SQL Azure.

Я наблюдал следующую схему при разрыве соединения:

  1. В течение 2-3 минут бездействия в SSMS
  2. Alt + Tab в другом окне и обратно в SSMS
  3. Работает дольше

DSVM присоединен к домену нашего клиента, и мы подключаемся к нему через Citrix.Пожалуйста, предоставьте любые предложения по исправлению прерывистой проблемы с подключением.

Ниже приведены подробные сведения об устранении неполадок, которые я выполнил.

enter image description here

enter image description here

enter image description here

1 Ответ

0 голосов
/ 14 марта 2019

Это похоже на проблему с разрешением DNS, которую вы можете прочитать на первом экране, которым вы поделились с нами. Кажется, у вас есть временное разрешение имен DNS.

Откройте окно командной строки и используйте команду PING, чтобы подтвердить, что при разрешении имени успешно преобразуется имя логического сервера в IP-адрес. Ожидается сообщение «Время ожидания истекло», показанное ниже, поскольку база данных SQL никогда не будет отвечать на запросы проверки связи.

C:\>ping <myserver>.database.windows.net
Pinging data.sn1-1.database.windows.net [65.55.74.144] with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 65.55.74.144:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss)

Если этот шаг периодически прерывается, обратитесь к администратору сети, администратору Citrix или поставщику услуг Интернета за помощью в устранении проблемы с разрешением имен.

Затем из окна командной строки попытайтесь подключиться к порту 1433 через telnet, используя IP-адрес, полученный на предыдущем шаге. Это проверит, существуют ли какие-либо межсетевые экраны / маршрутизаторы, блокирующие трафик к порту 1433.

C:\>telnet 65.55.74.144 1433

Connecting To 65.55.74.144...

a. Если Telnet успешен, окно изменится на полностью пустой экран. Выйдите и перейдите к следующему шагу. b.Если это не удалось, запишите выходные данные и передайте их сетевому администратору или администратору Citrix вместе с выходными данными tracert.

Далее, в окне командной строки повторите тест, пытаясь подключиться по telnet к DNS-имени вместо IP-адреса.

C:\>telnet <myserver>.database.windows.net 1433

Примечание. Если Telnet не является частью установки Windows по умолчанию, вы можете включить его в разделе «Установка и удаление компонентов Windows».

Наконец, чтобы изолировать проблемы с сетью, создайте трассировку сети, используя инструмент Microsoft Network Monitor, такой как this one.

Просмотрите трассировку, добавив фильтр TCP.port == 1433, который будет отображать диалоги по TCP-порту 1433. Если вы не видите ACK обратно с сервера, весьма вероятно, что соединение заблокировано в вашей сети или через интернет.

Фрагмент сети из неуспешного соединения:

11:12:27.007      25   {TCP:7, IPv4:6}  111.11.11.111    data.sn1-1.database.windows.net   TCP        TCP:Flags=......S., SrcPort=49411, DstPort=1433, PayloadLen=0, Seq=2375502765, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192
11:12:30.007 26 {TCP:7, IPv4:6} 111.11.11.111 data.sn1-1.database.windows.net TCP TCP:[SynReTransmit #25]Flags=......S., SrcPort=49411, DstPort=1433, PayloadLen=0, Seq=2375502765, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192 11:12:36.007 29 {TCP:7, IPv4:6} 111.11.11.111 data.sn1-1.database.windows.net TCP TCP:[SynReTransmit #25]Flags=......S., SrcPort=49411, DstPort=1433, PayloadLen=0, Seq=2375502765, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 819211:12:48.014      40   {TCP:12, IPv4:6} 111.11.11.111    data.sn1-1.database.windows.net   TCP        TCP:Flags=......S., SrcPort=49412, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=3206081271, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192
11:12:49.015      41   {TCP:13, IPv4:6} 111.11.11.111    data.sn1-1.database.windows.net   TCP        TCP:Flags=......S., SrcPort=49413, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=1361088072, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192
11:12:49.019      42   {IPv4:6}         111.11.11.111    data.sn1-1.database.windows.net   ICMP       ICMP:Echo Request Message, From 111.11.11.111 To 65.55.74.144
11:12:50.769      45   {IPv4:6}         111.11.11.111    data.sn1-1.database.windows.net   ICMP       ICMP:Echo Request Message, From 111.11.11.111 To 65.55.74.144
11:12:51.014 46 {TCP:12, IPv4:6} 111.11.11.111 data.sn1-1.database.windows.net TCP TCP:[SynReTransmit #40]Flags=......S., SrcPort=49412, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=3206081271, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192 11:12:52.015 47 {TCP:13, IPv4:6} 111.11.11.111 data.sn1-1.database.windows.net TCP TCP:[SynReTransmit #41]Flags=......S., SrcPort=49413, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=1361088072, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 819211:12:52.771      48   {TCP:14, IPv4:6} 111.11.11.111    data.sn1-1.database.windows.net   TCP        TCP:Flags=......S., SrcPort=49414, DstPort=NETBIOS Session Service(139), PayloadLen=0, Seq=265110652, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192
11:12:55.771 49 {TCP:14, IPv4:6} 111.11.11.111 data.sn1-1.database.windows.net TCP TCP:[SynReTransmit #48]Flags=......S., SrcPort=49414, DstPort=NETBIOS Session Service(139), PayloadLen=0, Seq=265110652, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192 11:12:57.021 52 {TCP:12, IPv4:6} 111.11.11.111 data.sn1-1.database.windows.net TCP TCP:[SynReTransmit #40]Flags=......S., SrcPort=49412, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=3206081271, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192 11:12:58.016 53 {TCP:13, IPv4:6} 111.11.11.111 data.sn1-1.database.windows.net TCP TCP:[SynReTransmit #41]Flags=......S., SrcPort=49413, DstPort=Microsoft-DS(445), PayloadLen=0, Seq=1361088072, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192 11:13:01.771 56 {TCP:14, IPv4:6} 111.11.11.111 data.sn1-1.database.windows.net TCP TCP:[SynReTransmit #48]Flags=......S., SrcPort=49414, DstPort=NETBIOS Session Service(139), PayloadLen=0, Seq=265110652, Ack=0, Win=8192 ( Negotiating scale factor 0x8 ) = 8192

Здесь мы видим, что клиент пытается установить соединение с базой данных SQL и продолжает повторную передачу три раза, но не удается

Фрагмент трассировки успешного соединения:

14:50:01.512      847  SQLCMD.EXE  {TCP:428, IPv4:427}  99.99.999.99      157.54.118.18    TCP        TCP:Flags=......S., SrcPort=13415, DstPort=1433, PayloadLen=0, Seq=4009972475, Ack=0, Win=8192 ( Negotiating scale factor 0x2 ) = 8192
14:50:01.515      848  SQLCMD.EXE  {TCP:428, IPv4:427}  157.54.118.18     99.99.999.99     TCP        TCP:Flags=...A..S., SrcPort=1433, DstPort=13415, PayloadLen=0, Seq=2117383693, Ack=4009972476, Win=8192 ( Scale factor not supported ) = 8192
14:50:01.516      849  SQLCMD.EXE  {TCP:428, IPv4:427}  99.99.999.99      157.54.118.18    TCP        TCP:Flags=...A...., SrcPort=13415, DstPort=1433, PayloadLen=0, Seq=4009972476, Ack=2117383694, Win=17040 (scale factor 0x0) = 17040

Приведенный выше фрагмент кода представляет собой успешное трехстороннее рукопожатие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...