So überprüfen Sie, ob SQL Server auf einen dynamischen Port oder einen statischen Port überwacht
In diesem Artikel wird erläutert, wie Sie ermitteln können, ob Ihre benannte Instanz von Microsoft SQL Server einen dynamischen Port im Vergleich zu einem statischen Port überwacht. Diese Informationen können hilfreich sein, wenn Sie verschiedene Verbindungsprobleme behandeln, die mit SQL Server zusammenhängen.
Standardmäßig ist eine benannte SQL Server-Instanz für die Überwachung dynamischer Ports konfiguriert. Es erhält einen verfügbaren Port vom Betriebssystem. Sie können sql Server benannte Instanzen auch so konfigurieren, dass sie an einem bestimmten Port gestartet werden. Dies wird als statischer Port bezeichnet. Weitere Informationen zu statischen und dynamischen Ports im Kontext von SQL Server finden Sie unter Static vs Dynamic Ports.
Verwenden Sie das folgende Verfahren, um zu bestimmen, ob die benannte SQL Server-Instanz einen dynamischen Port im Vergleich zu einem statischen Port überwacht.
Option 1: Verwenden von SQL Server-Konfigurations-Manager
Erweitern Sie in SQL Server-Konfigurations-Manager DIE SQL Server-Netzwerkkonfiguration, erweitern Sie z. B. den Namen der Protokolle, und doppelklicken Sie dann auf TCP/IP.
Wählen Sie in den TCP/IP-Eigenschaften "Protokoll" aus.
Überprüfen Sie den Wert in der Einstellung "Alle überwachen". Wenn sie auf "Ja" festgelegt ist, fahren Sie mit Schritt 4 fort. Wenn sie auf "Nein" festgelegt ist, fahren Sie mit Schritt 6 fort.
Wechseln Sie zu IP-Adressen, und scrollen Sie zum Ende der Seite "TCP/IP-Eigenschaften ".
Überprüfen Sie die Werte in IP All, und ermitteln Sie anhand der folgenden Tabelle, ob die benannte Instanz auf einem dynamischen oder statischen Port lauscht.
Dynamische TCP-Ports TCP-Port SQL Server-Instanz mit dynamischen oder statischen Ports? Leer Leer Dynamische Ports <Number>
Leer Dynamische Ports – <Number>
ist der dynamische Port, den SQL Server derzeit überwacht<Number1>
<Number2>
Gleichzeitiges Überwachen eines dynamischen Ports und eines statischen Ports <Number1>
<Number2>
Wechseln sie zu IP-Adressen. Beachten Sie, dass mehrere IP-Adressen im Format IP1, IP2, bis zu IP All angezeigt werden. Eine dieser IP-Adressen ist für den Loopbackadapter 127.0.0.1 vorgesehen. Für jede IP-Adresse auf dem Computer werden weitere IP-Adressen angezeigt. (Wahrscheinlich werden sowohl IP4- als auch IP6-Adressen angezeigt.) Verwenden Sie die folgende Tabelle, um zu überprüfen, ob eine bestimmte IP-Adresse für einen dynamischen und statischen Port konfiguriert ist.
Dynamische TCP-Ports TCP-Port SQL Server-Instanz mit dynamischen oder statischen Ports? Leer Leer Dynamische Ports <Number>
Leer Dynamische Ports – <Number>
ist der dynamische Port, den SQL Server derzeit überwacht.<Number1>
<Number2>
Gleichzeitiges Überwachen eines dynamischen Ports und eines statischen Ports <Number1>
<Number2>
Notiz
Ein Wert von 0 in dynamischen TCP-Ports gibt an, dass die benannte Instanz derzeit nicht ausgeführt wird und für dynamische Ports konfiguriert ist. Nachdem Sie die Instanz gestartet haben, spiegelt das Wertfeld den dynamischen Port wider, den die Instanz derzeit verwendet.
Option 2: Verwenden von PowerShell
Führen Sie das folgende Skript in der PowerShell ISE aus. Im Konsolenfenster werden alle relevanten TCP/IP-Adressen für alle SQL Server-Instanzen (SQL Server 2014 bis SQL Server 2019) angezeigt, die derzeit auf dem System installiert sind.
clear Write-Host "SQL Server 2019" Write-Host "=====================" Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.*\MSSQLServer\SuperSocketNetLib\Tcp" | Select-Object -Property Enabled, KeepAlive, ListenOnAllIps,@{label='ServerInstance';expression={$_.PSPath.Substring(74)}} |Format-Table -AutoSize Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL15.*\MSSQLServer\SuperSocketNetLib\Tcp\IP*\" | Select-Object -Property TcpDynamicPorts,TcpPort,DisplayName, @{label='ServerInstance_and_IP';expression={$_.PSPath.Substring(74)}}, IpAddress |Format-Table -AutoSize Write-Host "SQL Server 2017" Write-Host "=====================" Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.*\MSSQLServer\SuperSocketNetLib\Tcp" | Select-Object -Property Enabled, KeepAlive, ListenOnAllIps,@{label='ServerInstance';expression={$_.PSPath.Substring(74)}} |Format-Table -AutoSize Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.*\MSSQLServer\SuperSocketNetLib\Tcp\IP*\" | Select-Object -Property TcpDynamicPorts,TcpPort, DisplayName, @{label='ServerInstance_and_IP';expression={$_.PSPath.Substring(74)}}, IpAddress |Format-Table -AutoSize Write-Host "SQL Server 2016" Write-Host "=====================" Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.*\MSSQLServer\SuperSocketNetLib\Tcp" | Select-Object -Property Enabled, KeepAlive, ListenOnAllIps,@{label='ServerInstance';expression={$_.PSPath.Substring(74)}} |Format-Table -AutoSize Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.*\MSSQLServer\SuperSocketNetLib\Tcp\IP*\" | Select-Object -Property TcpDynamicPorts,TcpPort, DisplayName, @{label='ServerInstance_and_IP';expression={$_.PSPath.Substring(74)}}, IpAddress |Format-Table -AutoSize Write-Host "SQL Server 2014" Write-Host "=====================" Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.*\MSSQLServer\SuperSocketNetLib\Tcp" | Select-Object -Property Enabled, KeepAlive, ListenOnAllIps,@{label='ServerInstance';expression={$_.PSPath.Substring(74)}} |Format-Table -AutoSize Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.*\MSSQLServer\SuperSocketNetLib\Tcp\IP*\" | Select-Object -Property TcpDynamicPorts,TcpPort, DisplayName, @{label='ServerInstance_and_IP';expression={$_.PSPath.Substring(74)}}, IpAddress |Format-Table -AutoSize
Überprüfen Sie in der Ausgabe den Wert in der Spalte ListenOnAllIPs für Ihre SQL Server-Instanz (verweisen Sie auf den entsprechenden Wert in ServerInstance für diese Zeile). Wenn der Wert auf 1 festgelegt ist, fahren Sie mit Schritt 3 fort. Wenn sie auf 0 festgelegt ist, fahren Sie mit Schritt 4 fort.
Scannen Sie die Ausgabe für eine Zeile mit einem Eintrag "Beliebige IP-Adresse " in der Spalte "DisplayName " für Ihre Instanz, oder überprüfen Sie die Werte von TcpDynamicPorts und TcpPort für die Zeile. Verwenden Sie dann die folgende Tabelle, um zu bestimmen, ob die benannte Instanz auf einem dynamischen oder statischen Port lauscht.
Dynamische TCP-Ports TCP-Port SQL Server-Instanz mit dynamischen oder statischen Ports? Leer Leer Dynamische Ports <Number>
Leer Dynamische Ports – <Number>
ist der dynamische Port SQL derzeit überwacht<Number1>
<Number2>
Gleichzeitiges Überwachen eines dynamischen Ports und eines statischen Ports <Number1>
<Number2>
Beachten Sie, dass mehrere IP-Adressen im Format IP1, IP2, bis zu IP All angezeigt werden. Eine dieser IP-Adressen ist für den Loopbackadapter 127.0.0.1 vorgesehen. Für jede IP-Adresse auf dem Computer werden weitere IP-Adressen angezeigt. (Wahrscheinlich werden sowohl IP4- als auch IP6-Adressen angezeigt.) Verwenden Sie die folgende Tabelle, um zu überprüfen, ob eine bestimmte IP-Adresse für einen dynamischen und statischen Port konfiguriert ist.
Dynamische TCP-Ports TCP-Port SQL Server-Instanz mit dynamischen oder statischen Ports? Leer Leer Dynamische Ports <Number>
Leer Dynamische Ports – <Number>
ist der dynamische Port, den SQL Server derzeit überwacht.<Number1>
<Number2>
Gleichzeitiges Überwachen eines dynamischen Ports und eines statischen Ports <Number1>
<Number2>
Notiz
Ein Wert von 0 in dynamischen TCP-Ports gibt an, dass die benannte Instanz derzeit nicht ausgeführt wird und für dynamische Ports konfiguriert ist. Nachdem Sie die Instanz gestartet haben, spiegelt das Wertfeld den dynamischen Port wider, den die Instanz derzeit verwendet.