SQL: Nie można połączyć się z serwerem. Timeout.

27-Mar-2016

W dużych środowiskach administrując serwerami nierzadko nie wiesz, czy między serwerami jest zaimplementowany firewall czy nie i ewentualnie, czy przepuszczany jest ruch do SQL servera. W takim przypadku rewelacyjnie pomocny jest program portquery. Można by powiedzieć, że to taki ping, który potrafi sprawdzić, czy osiągalny jest nie tyle cały host, co pewna usługa działająca na tym hoście na określonym porcie. Zakładając, że masz serwer Server01, na którym działa SQL server na porcie 1433, to jeśli chcesz sprawdzić czy ruch na porcie 1433 jest filtrowany czy nie wykonaj polecenie:

portqry.exe -n Server01 -e 1433 -p TCP

Jak widać -e określa badany numer portu, a -p protokół. Jeżeli w wyniku otrzymasz FILTERED, tzn że gdzieś jest jakiś firewall, który sprawił, że host jest niedostępny. Jeżeli masz wynik LISTENING, tzn., że usługa nasłuchuje na tym porcie i przyczyny twoich problemów należy poszukać gdzieś indziej.

Ja zwykle wykonuję 2 testy. Jeden lokalnie z tego komputera, na któym pracuje SQL. Tu otrzymuję zwykle wynik LISTENING i wtedy wiem, że mój SQL ma się dobrze. Potem ten sam test uruchamiam z róznych serwerów zdalnych i jeśli otrzymuję FILTERED, to wiem, że po pomoc należy się udać do sieciowców.

Portquery można pobrać z http://www.microsoft.com/en-us/download/details.aspx?id=24009

Dodaj komentarz:

Autor: Rafał Kraik