Compartilhar via


Como marcar se SQL Server estiver ouvindo em uma porta dinâmica ou em uma porta estática

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

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

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

Opção 1: usar SQL Server Configuration Manager

  1. Em SQL Server Configuration Manager, expanda SQL Server Configuração de Rede, 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 TCP/IP .

  5. Verifique os valores no 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 dinâmicas TCP Porta TCP SQL Server instância 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 SQL Server está escutando no momento
    <Number1> <Number2> Escutando simultaneamente em uma porta <Number1> dinâmica e em uma porta estática <Number2>
  6. Alterne 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á endereços IP4 e IP6.) Para marcar se um endereço IP específico está configurado para uma porta dinâmica versus estática, use a tabela a seguir.

    Portas dinâmicas TCP Porta TCP SQL Server instância 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 SQL Server está escutando no momento.
    <Number1> <Number2> Escutando simultaneamente em uma porta <Number1> dinâmica e em uma porta estática <Number2>

Observação

Um valor de 0 em portas dinâmicas TCP indica que a instância nomeada atualmente não está em execução e está configurada para portas dinâmicas. Depois de iniciar a instância, o campo 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 de SQL Server (SQL Server 2014 a SQL Server 2019) que estão instaladas no sistema no momento.

    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, marcar o valor na coluna ListenOnAllIPs para sua instância de 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 de Endereço IP na coluna DisplayName para sua instância ou marcar 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 dinâmicas TCP Porta TCP SQL Server instância 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 em 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á endereços IP4 e IP6.) Para marcar se um endereço IP específico está configurado para uma porta dinâmica versus estática, use a tabela a seguir.

    Portas dinâmicas TCP Porta TCP SQL Server instância 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 SQL Server está escutando no momento.
    <Number1> <Number2> Escutando simultaneamente em uma porta <Number1> dinâmica e em uma porta estática <Number2>

Observação

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

Confira também