W tym artykule z bazy wiedzy : Jak skonfigurować program SQL Server do nasłuchiwania na określonym porcie , wyjaśnimy Ci następujące rzeczy:
Dynamiczne przydzielanie portów
Jeśli skonfigurujesz wystąpienie programu SQL Server do korzystania z dynamicznej alokacji portów, a jeszcze nie uruchomiono ponownie wystąpienia programu SQL Server, wartości rejestru są ustawione w następujący sposób:
TCPDynamicPorts = Puste
TCPPort = 0
Jeśli jednak skonfigurujesz wystąpienie programu SQL Server do korzystania z dynamicznego przydzielania portów i zrestartujesz wystąpienie programu SQL Server, wartości rejestru zostaną ustawione w następujący sposób:
TCPDynamicPorts = Bieżący używany port
TCPPort = Bieżący używany port
Statyczny przydział portów:
Jeśli skonfigurujesz wystąpienie programu SQL Server do korzystania z portu statycznego i nie zrestartowałeś jeszcze wystąpienia programu SQL Server, wartości rejestru zostaną ustawione w następujący sposób:
TCPDynamicPorts = Ostatni używany port
TCPPort = Nowy port statyczny, który będzie używany po następnym restarcie; nowy port statyczny ustawiony za pomocą Narzędzia sieciowego serwera
Jeśli jednak skonfigurujesz wystąpienie programu SQL Server do używania portu statycznego i zrestartujesz wystąpienie programu SQL Server, wartości rejestru zostaną ustawione w następujący sposób:
TCPDynamicPorts = Puste
TCPPort = Nowy port statyczny ustawiony za pomocą narzędzia sieciowego serwera
na drugie pytanie -
Za każdym razem, gdy uruchamiasz nazwany SQLServer, korzysta on z przydzielonego portu. W przypadku, gdy port jest używany przez inny program , wówczas SQL Server wybiera inny port w momencie restartu, tj. Port dynamiczny jest wybierany przy pierwszym uruchomieniu i zasadniczo pozostanie taki sam podczas przyszłych ponownych uruchomień (przechowywanych w Rejestrze) - ale jeśli jest używany przez inny program, a następnie SQL Server wybierze nowy port. Uwaga: W przypadku serwerów Prod używam tylko portów statycznych - ze względów bezpieczeństwa i łatwości zarządzania.
Uwaga: Więcej chłodzi rzecz, aby dowiedzieć się:
Sprawdź, czy używasz portu dynamicznego, czy nie używa T-SQL:
SELECT NAME
,protocol_desc
,type_desc
,state_desc
,is_admin_endpoint
,port
,is_dynamic_port
,ip_address
FROM sys.tcp_endpoints
Możesz użyć netstat -ano
do sprawdzenia za pomocą cmdline.
Dodatkowo możesz sprawdzić, co zostało wcześniej buforowane w rejestrze po stronie klienta, co do portu używanego do łączenia się z serwerem SQL:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect
Second question
moje pytanie powyżej.