| Termin | Definicja |
|---|---|
| TCP Dynamic Ports | TCP Dynamic Ports to numery przydzielane losowo instancjom nazwanym, wykrywane przez SQL Server Browser. TCP Dynamic Ports w nazwanych instancjach SQL ServerTCP Dynamic Ports to mechanizm używany przez nazwane instancje Microsoft SQL Server. Nazwana instancja nie musi nasłuchiwać stale na jednym, z góry ustalonym numerze portu TCP. Podczas uruchamiania usługa SQL Server może otrzymać dostępny port dynamiczny i rozpocząć na nim przyjmowanie połączeń. Numer przypisany konkretnej instancji jest zapisywany w konfiguracji protokołu TCP/IP i może zostać zmieniony przy kolejnym uruchomieniu usługi, jeżeli instancja nadal korzysta z trybu dynamicznego. Mechanizm dotyczy warstwy transportowej TCP, a nie samego języka SQL ani struktury baz danych. Klient musi znać adres komputera oraz numer portu, na którym działa wybrana instancja. W przypadku połączenia zapisanego jako nazwa serwera i nazwa instancji klient może skorzystać z usługi SQL Server Browser. Browser nasłuchuje na porcie UDP 1434 i odpowiada informacją o portach oraz protokołach używanych przez zarejestrowane instancje SQL Server na danym komputerze. Dynamiczny port nie oznacza, że połączenie jest losowe albo nieprzewidywalne w czasie pojedynczej sesji. Po uruchomieniu usługi instancja nasłuchuje na konkretnym numerze TCP, a istniejące połączenie pozostaje związane z tym portem do czasu jego zakończenia lub zatrzymania usługi. Zmiana numeru może wystąpić przy restarcie SQL Server, dlatego reguły zapory i konfiguracja klientów muszą uwzględniać sposób przydzielania portów. Jak klient odnajduje port nazwanej instancjiW typowym scenariuszu użytkownik lub aplikacja podaje nazwę w formacie Do zestawienia takiego połączenia potrzebne są więc dwa niezależne elementy komunikacji. Pierwszym jest dostęp do UDP 1434 na komputerze, na którym działa SQL Server Browser. Drugim jest dostęp do konkretnego portu TCP, na którym nasłuchuje nazwana instancja. Otwarcie samego UDP 1434 nie wystarczy, ponieważ Browser nie przekazuje danych zapytania SQL i nie zastępuje portu nasłuchu instancji. Z kolei otwarcie portu TCP bez działającego mechanizmu rozpoznawania nazwy nie umożliwi automatycznego połączenia przez zapis `serwer\instancja`, jeśli klient nie otrzyma numeru portu z innego źródła. Alternatywą dla SQL Server Browser jest podanie portu bezpośrednio, na przykład w zapisie Konfiguracja portów w SQL Server Configuration ManagerUstawienia dynamicznych portów znajdują się w SQL Server Configuration Manager, w właściwościach protokołu TCP/IP przypisanego do konkretnej usługi SQL Server. W zakładce dotyczącej adresów IP można znaleźć sekcje odpowiadające poszczególnym adresom oraz sekcję Jeżeli administrator chce wymusić stały port, zwykle usuwa wartość z pola Przy pozostawieniu trybu dynamicznego trzeba ustalić, jaki numer został faktycznie przydzielony po uruchomieniu instancji. Można wykorzystać informacje raportowane przez SQL Server Configuration Manager, log błędów SQL Server lub narzędzia systemowe pokazujące aktywne porty nasłuchujące. Diagnostyka powinna odróżniać port skonfigurowany od portu rzeczywiście używanego: błędna wartość w konfiguracji, brak restartu albo uruchomienie innej instancji może prowadzić do odmiennych wyników. Diagnostyka problemów z połączeniem przez port dynamicznyObjawem problemu może być sytuacja, w której klient widzi komputer w sieci, ale nie może połączyć się z nazwą instancji. Najpierw należy ustalić, czy usługa SQL Server działa i czy protokół TCP/IP jest włączony dla właściwej instancji. Następnie trzeba sprawdzić, czy SQL Server Browser jest uruchomiony, jeśli połączenie korzysta z automatycznego odnajdywania portu. Kolejny krok to potwierdzenie, że zapora przepuszcza UDP 1434 oraz bieżący port TCP instancji. Warto również wykonać test z pominięciem Browsera, używając bezpośredniego adresu i numeru portu, na przykład Przy analizie logów należy zwrócić uwagę na komunikaty o uruchomieniu serwera TCP oraz na numer portu, na którym instancja rozpoczęła nasłuch. Numery portów mogą być inne dla różnych instancji działających na tym samym hoście, a po restarcie mogą się zmienić w trybie dynamicznym. Dlatego dokumentacja połączeń powinna zawierać pełną nazwę instancji, sposób odnajdywania portu, wymagane reguły sieciowe i informację, czy port jest dynamiczny, czy statyczny. Taka weryfikacja pozwala oddzielić błąd konfiguracji SQL Server od problemu z DNS, zaporą lub nieprawidłowym parametrem połączenia. |