Как проверка, если SQL Server прослушивает динамический или статический порт
В этой статье описывается, как определить, прослушивает ли именованный экземпляр Microsoft SQL Server динамический и статический порт. Эти сведения могут быть полезны при устранении различных проблем с подключением, связанных с SQL Server.
По умолчанию экземпляр SQL Server с именем настроен для прослушивания динамических портов. Он получает доступный порт из операционной системы. Вы также можете настроить SQL Server именованные экземпляры для запуска с определенного порта. Это называется статическим портом. Дополнительные сведения о статических и динамических портах в контексте SQL Server см. в разделе Статические и динамические порты.
Используйте следующую процедуру, чтобы определить, прослушивает ли SQL Server именованный экземпляр динамический и статический порт.
Вариант 1. Использование диспетчер конфигурации SQL Server
В диспетчер конфигурации SQL Server разверните узел SQL Server Конфигурация сети, разверните узел Протоколы для имени экземпляра, а затем дважды щелкните TCP/IP.
В разделе Свойства TCP/IP выберите Протокол.
Проверьте значение в параметре Прослушивание всех . Если задано значение Да, перейдите к шагу 4. Если для него задано значение Нет, перейдите к шагу 6.
Перейдите в раздел IP-адреса и прокрутите страницу свойств TCP/IP вниз.
Проверьте значения в разделе ВСЕ IP-адреса и используйте следующую таблицу, чтобы определить, прослушивает ли именованный экземпляр динамический или статический порт.
Динамические порты TCP TCP-порт SQL Server экземпляр, использующий динамические или статические порты? "Пустой". "Пустой". Динамические порты <Number>
"Пустой". Динамические порты — <Number>
динамический порт, который SQL Server в настоящее время прослушивает.<Number1>
<Number2>
Одновременный прослушивание динамического и <Number1>
статического портов<Number2>
Переключитесь на IP-адреса. Обратите внимание, что несколько IP-адресов отображаются в формате IP1, IP2, вплоть до IP-адресов All. Один из этих IP-адресов предназначен для адаптера замыкания на себя ( 127.0.0.1). Для каждого IP-адреса на компьютере отображаются дополнительные IP-адреса. (Вероятно, вы увидите IP4 и IP6-адреса.) Чтобы проверка, настроен ли конкретный IP-адрес для динамического или статического порта, используйте следующую таблицу.
Динамические порты TCP TCP-порт SQL Server экземпляр, использующий динамические или статические порты? "Пустой". "Пустой". Динамические порты <Number>
"Пустой". Динамические порты — <Number>
это динамический порт, который SQL Server в настоящее время прослушивает.<Number1>
<Number2>
Одновременный прослушивание динамического и <Number1>
статического портов<Number2>
Примечание.
Значение 0 в динамических портах TCP указывает, что именованный экземпляр в настоящее время не запущен и настроен для динамических портов. После запуска экземпляра поле значения будет отражать динамический порт, используемый экземпляром в данный момент.
Вариант 2. Использование PowerShell
Выполните следующий скрипт в интегрированной среде сценариев PowerShell. В окне консоли отображаются все соответствующие tcp/IP-адреса для всех экземпляров SQL Server (SQL Server 2014–SQL Server 2019), которые в настоящее время установлены в системе.
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
В выходных данных проверка значение в столбце ListenOnAllIPs для экземпляра SQL Server (см. соответствующее значение в serverInstance для этой строки). Если для параметра задано значение 1, перейдите к шагу 3. Если для него задано значение 0, перейдите к шагу 4.
Проверьте выходные данные на наличие строки с записью Любой IP-адрес в столбце DisplayName для вашего экземпляра или проверка значения TcpDynamicPorts и TcpPort для строки. Затем используйте следующую таблицу, чтобы определить, прослушивает ли именованный экземпляр динамический или статический порт.
Динамические порты TCP TCP-порт SQL Server экземпляр, использующий динамические или статические порты? "Пустой". "Пустой". Динамические порты <Number>
"Пустой". Динамические порты — <Number>
это динамический порт, прослушиваемый SQL в настоящее время.<Number1>
<Number2>
Одновременный прослушивание динамического и <Number1>
статического портов<Number2>
Обратите внимание, что несколько IP-адресов отображаются в формате IP1, IP2, вплоть до IP-адресов All. Один из этих IP-адресов предназначен для адаптера замыкания на себя ( 127.0.0.1). Для каждого IP-адреса на компьютере отображаются дополнительные IP-адреса. (Вероятно, вы увидите IP4 и IP6-адреса.) Чтобы проверка, настроен ли конкретный IP-адрес для динамического или статического порта, используйте следующую таблицу.
Динамические порты TCP TCP-порт SQL Server экземпляр, использующий динамические или статические порты? "Пустой". "Пустой". Динамические порты <Number>
"Пустой". Динамические порты — <Number>
это динамический порт, который SQL Server в настоящее время прослушивает.<Number1>
<Number2>
Одновременный прослушивание динамического и <Number1>
статического портов<Number2>
Примечание.
Значение 0 в динамических портах TCP указывает, что именованный экземпляр в настоящее время не запущен и настроен для динамических портов. После запуска экземпляра поле значения будет отражать динамический порт, используемый экземпляром в данный момент.