In diesem KB-Artikel wird erläutert, wie Sie SQL Server so konfigurieren, dass es einen bestimmten Port überwacht:
Dynamische Portzuweisung
Wenn Sie eine Instanz von SQL Server für die Verwendung der dynamischen Portzuordnung konfigurieren und die Instanz von SQL Server noch nicht neu gestartet haben, werden die Registrierungswerte wie folgt festgelegt:
TCPDynamicPorts = Leer
TCPPort = 0
Wenn Sie jedoch eine Instanz von SQL Server für die Verwendung der dynamischen Portzuordnung konfigurieren und die Instanz von SQL Server neu starten, werden die Registrierungswerte wie folgt festgelegt:
TCPDynamicPorts = Aktueller Port, der verwendet wird
TCPPort = Aktueller Port, der verwendet wird
Statische Portzuordnung:
Wenn Sie eine Instanz von SQL Server für die Verwendung eines statischen Ports konfigurieren und die Instanz von SQL Server noch nicht neu gestartet haben, werden die Registrierungswerte wie folgt festgelegt:
TCPDynamicPorts = Letzter verwendeter Port
TCPPort = Neuer statischer Port, der nach dem nächsten Neustart verwendet werden soll; neuer statischer Port, den Sie mithilfe des Server-Netzwerkdienstprogramms festgelegt haben
Wenn Sie jedoch eine Instanz von SQL Server für die Verwendung eines statischen Ports konfigurieren und die Instanz von SQL Server neu starten, werden die Registrierungswerte wie folgt festgelegt:
TCPDynamicPorts = Leer
TCPPort = Neuer statischer Port, den Sie mit dem Server-Netzwerkdienstprogramm festgelegt haben
für Ihre zweite Frage -
Bei jedem Start des genannten SQLServers wird der zugewiesene Port verwendet. Wenn der Port von einem anderen Programm verwendet wird , wählt SQL Server zum Zeitpunkt des Neustarts einen anderen Port aus, dh der dynamische Port wird beim ersten Start ausgewählt und bleibt im Allgemeinen bei zukünftigen Neustarts (in der Registrierung gespeichert) unverändert Es wird von einem anderen Programm als SQL Server verwendet und wählt einen neuen Port. Hinweis: Für Prod-Server verwende ich nur statische Ports - aus Gründen der Sicherheit und der einfachen Verwaltbarkeit.
Hinweis: Weitere coole Sache, um herauszufinden:
Überprüfen Sie, ob der dynamische Port mit T-SQL verwendet wird oder nicht:
SELECT NAME
,protocol_desc
,type_desc
,state_desc
,is_admin_endpoint
,port
,is_dynamic_port
,ip_address
FROM sys.tcp_endpoints
Mit können netstat -ano
Sie mit cmdline prüfen.
Darüber hinaus können Sie überprüfen, was in der Registrierung auf der Clientseite zuvor zwischengespeichert wurde, um festzustellen, über welchen Port die Verbindung zum SQL-Server hergestellt wird:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect
Second question
in meiner Frage oben.