Compartilhar via


Como verificar se o SQL Server está escutando em uma porta dinâmica ou estática

Este artigo discute como determinar se a instância nomeada do Microsoft SQL Server está escutando em uma porta dinâmica em vez de uma porta estática. Essas informações podem ser úteis quando você soluciona diferentes problemas de conexão relacionados ao SQL Server.

Por padrão, uma instância nomeada do SQL Server é configurada para escutar em portas dinâmicas. Ele obtém uma porta disponível do sistema operacional. Você também pode configurar instâncias nomeadas do SQL Server para iniciar em uma porta específica. Isso é conhecido como porta estática. Para obter mais informações sobre portas estáticas e dinâmicas no contexto do SQL Server, consulte Portas estáticas versus dinâmicas.

Use o procedimento a seguir para determinar se a instância nomeada do SQL Server está escutando em uma porta dinâmica em vez de uma porta estática.

Opção 1: usar o SQL Server Configuration Manager

  1. No SQL Server Configuration Manager, expanda Configuração de Rede do SQL Server, expanda Protocolos para o nome da instância e clique duas vezes em TCP/IP.

  2. Em Propriedades TCP/IP, selecione Protocolo.

  3. Verifique o valor na configuração Ouvir tudo . Se estiver definido como Sim, vá para a etapa 4. Se estiver definido como Não, vá para a etapa 6.

  4. Vá para Endereços IP e role até a parte inferior da página Propriedades do TCP/IP.

  5. Verifique os valores em IP All e use a tabela a seguir para determinar se a instância nomeada está escutando em uma porta dinâmica ou estática.

    Portas TCP dinâmicas Porta TCP Instância do SQL Server usando portas dinâmicas ou estáticas?
    Em branco Em branco Portas dinâmicas
    <Number> Em branco: Portas dinâmicas – <Number> é a porta dinâmica na qual o SQL Server está escutando no momento
    <Number1> <Number2> Escutando simultaneamente em uma porta <Number1> dinâmica e uma porta estática <Number2>
  6. Mude para endereços IP. Observe que vários endereços IP aparecem no formato IP1, IP2, até IP All. Um desses endereços IP destina-se ao adaptador de loopback, 127.0.0.1. Mais endereços IP aparecem para cada endereço IP no computador. (Você provavelmente verá os endereços IP4 e IP6.) Para verificar se um endereço IP específico está configurado para uma porta dinâmica versus estática, use a tabela a seguir.

    Portas TCP dinâmicas Porta TCP Instância do SQL Server usando portas dinâmicas ou estáticas?
    Em branco Em branco Portas dinâmicas
    <Number> Em branco: Portas dinâmicas – <Number> é a porta dinâmica que o SQL Server está escutando no momento.
    <Number1> <Number2> Escutando simultaneamente em uma porta <Number1> dinâmica e uma porta estática <Number2>

Observação

Um valor de 0 em portas dinâmicas TCP indica que a instância nomeada não está em execução no momento e está configurada para portas dinâmicas. Depois de iniciar a instância, o campo de valor refletirá a porta dinâmica que a instância está usando no momento.

Opção 2: usar o PowerShell

  1. Execute o script a seguir no ISE do PowerShell. A janela Console exibe todo o TCP/IP relevante para todas as instâncias do SQL Server (SQL Server 2014 a SQL Server 2019) que estão atualmente instaladas no sistema.

    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
    
  2. Na saída, verifique o valor na coluna ListenOnAllIPs para sua instância do SQL Server (consulte o valor correspondente em ServerInstance para essa linha). Se o valor for definido como 1, vá para a etapa 3. Se estiver definido como 0, vá para a etapa 4.

  3. Examine a saída de uma linha que tenha uma entrada Qualquer endereço IP na coluna DisplayName da sua instância ou verifique os valores de TcpDynamicPorts e TcpPort para a linha. Em seguida, use a tabela a seguir para determinar se a instância nomeada está escutando em uma porta dinâmica ou estática.

    Portas TCP dinâmicas Porta TCP Instância do SQL Server usando portas dinâmicas ou estáticas?
    Em branco Em branco Portas dinâmicas
    <Number> Em branco: Portas dinâmicas - <Number> é a porta dinâmica em que o SQL está escutando no momento
    <Number1> <Number2> Escutando simultaneamente em uma porta <Number1> dinâmica e uma porta estática <Number2>
  4. Observe que vários endereços IP aparecem no formato IP1, IP2, até IP All. Um desses endereços IP destina-se ao adaptador de loopback, 127.0.0.1. Mais endereços IP aparecem para cada endereço IP no computador. (Você provavelmente verá os endereços IP4 e IP6.) Para verificar se um endereço IP específico está configurado para uma porta dinâmica versus estática, use a tabela a seguir.

    Portas TCP dinâmicas Porta TCP Instância do SQL Server usando portas dinâmicas ou estáticas?
    Em branco Em branco Portas dinâmicas
    <Number> Em branco: Portas dinâmicas – <Number> é a porta dinâmica que o SQL Server está escutando no momento.
    <Number1> <Number2> Escutando simultaneamente em uma porta <Number1> dinâmica e uma porta estática <Number2>

Observação

Um valor de 0 em portas dinâmicas TCP indica que a instância nomeada não está em execução no momento e está configurada para portas dinâmicas. Depois de iniciar a instância, o campo de valor refletirá a porta dinâmica que a instância está usando no momento.

Confira também