Como configurar uma instância de SQL Server para escutar uma porta TCP ou porta dinâmica

Traduções deste artigo Traduções deste artigo
ID do artigo: 823938 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve a alocação de porta estática e dinâmica no Microsoft SQL Server 2000, no Microsoft SQL Server 2005 e no SQL Server de 2008. Ele também aborda como configurar uma instância de SQL Servidor para usar uma porta estática ou uma porta dinâmica.

Alocação de porta estática

Se você configurar uma instância de SQL Server para usar um porta estática e reinicie a instância de SQL Server, a instância do SQL Server somente escuta a porta estática especificada. Os clientes SQL Server deve enviar todas as solicitações somente a porta estática onde a instância de SQL Servidor está escutando.

Entretanto, se uma instância de SQL Server é configurado para escutar em uma porta estática e outro programa está sendo executado no computador já está usando a porta estática especificada quando é SQL Server iniciado, SQL Server não escuta na porta estática especificada.

Por padrão, a instância padrão do SQL Server escuta as solicitações de clientes SQL Server na porta estática 1433. Portanto, as bibliotecas de rede do cliente pressupõem uma porta 1433 ou global porta é definida para que o computador cliente é usado para conectar-se ao padrão de instância padrão de SQL Server.

Se for uma instância padrão do SQL Server escutando uma porta diferente da porta 1433, deve ser definir um nome de alias do servidor ou alterar a porta padrão global usando o utilitário de rede do cliente. No entanto, você também pode tornar a instância padrão de escuta de SQL Server em várias portas estáticas.

Para obter mais informações sobre como configurar SQL Server para escutar várias portas TCP estáticas, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
294453Como configurar SQL Server para escutar várias portas TCP estáticas
A instância padrão do SQL Server não suporte a alocação de porta dinâmica. No entanto, as instâncias nomeadas do SQL Server suportam a alocação de portas dinâmicas e estáticas. Por padrão, uma instância nomeada do SQL Server escuta em uma porta dinâmica. Para uma instância de SQL Server, o serviço de localizador de SQL Server para o SQL Server 2005/2008 ou o SQL Server resolução protocolo (SSRP) para o SQL Server 2000 é sempre usado para traduzir o nome da instância a uma porta, independentemente da porta é estáticos ou dinâmicos. O serviço localizador ou SSRP nunca é usado para uma instância padrão do SQL Server.

Alocação de porta dinâmica

Somente as instâncias nomeadas do SQL Server podem usar o processo de alocação de porta dinâmica. No processo de alocação de porta dinâmica, quando iniciar a instância de SQL Server pela primeira vez a porta está definida como zero (0). Portanto, SQL Server solicita uma porta livre número do sistema operacional. Como um número de porta é alocado para SQL Servidor, SQL Server inicia a escuta na porta alocada.

Porta alocada número é gravado no registro do Windows. Sempre que iniciar que nomeado instância de SQL Server, ele usa alocados porta número. No entanto, no caso improvável que outro programa que está sendo executado no computador está usando esse número de porta anteriormente alocado (mas não estático) quando você iniciar o SQL Server, SQL Server escolhe outra porta.

Quando você inicia as instâncias nomeadas do SQL Server pela segunda vez, SQL Server abre o número de porta de escuta que foi iniciado pela primeira vez, da seguinte maneira:
  • Se a porta estiver aberta sem erros, SQL Server escuta na porta.
  • Se a porta não está aberta e erros ocorrem, SQL Server se comporta da seguinte maneira:
    • Você recebe a seguinte mensagem de erro:
      Erro ID 10048 (WSAEADDRINUSE)
      Quando você receber essa mensagem de erro, SQL Server determina se a porta está sendo usada. Em seguida, o número da porta é definido como zero (0) novamente. Portanto, é atribuída uma porta disponível. E SQL Server aguarda a solicitação de conexão do cliente na porta.
    • Se você receber uma mensagem de erro não menciona o erro 10048, SQL Server 2000 determina que é impossível esperar que a solicitação de conexão na porta. Portanto, a porta não está aberta.
Observações
  • No SQL Server 2005 quando você receber a seguinte mensagem de erro, o número da porta é definido como zero (0) e é aberto.
    Erro ID 10013 (WSAEACCES)
  • No Windows Server 2003 ou no Windows XP, você pode receber a mensagem de 10013 erro em vez da mensagem de 10048 erro quando a porta está tentando abrir é usada exclusivamente.
Quando uma instância de SQL Server usa alocação de portas dinâmicas, a conexão seqüência de caracteres é criada no cliente SQL Server não especifica o TCP/IP de destino a menos que o usuário ou o programador explicitamente Especifica a porta a porta. Portanto, a biblioteca de cliente SQL Server consulta o servidor na porta UDP 1434 para coletar informações sobre a instância de destino do SQL Server. Quando SQL Server retorna as informações, envia a biblioteca de cliente SQL Server os dados para a instância apropriada de SQL Server.

Se a porta UDP 1434 desativado, o cliente de SQL Server não pode determinar dinamicamente o porta da instância nomeada do SQL Server. Portanto, o cliente de SQL Server pode ser possível se conectar com o instância nomeada do SQL Server. Nessa situação, o cliente de SQL Server deve especificar o porta alocada dinamicamente onde está a instância nomeada do SQL Server 2000, SQL Server 2005 ou 2008 de SQL Server ouvindo.

Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
265808Como se conectar a uma instância nomeada do SQL Server 2005 ou SQL Server 2000 usando as ferramentas de cliente na versão anterior do SQL Server

Verificando a configuração da porta de um instância de SQL Server

ObservaçãoInstâncias padrão de SQL Server sempre usam um estático porta.

Primeiro verifique se a instância de SQL Server tem o protocolo TCP/IP ativado. Em seguida, para localizar a porta TCP/IP sua instância do SQL Server está "escutando", examine o log de erro SQL Server. Além disso, no SQL Server 2005 e versões posteriores, você pode verificar as configurações no Gerenciador de configuração de SQL Server. Se você quiser ver o log de erro SQL de dentro de um programa, siga estas etapas.

Observação SQL Server 2000, use o Query analyzer para executar as consultas a seguir.
  1. Iniciar SQL Server Management Studio e conecte à instância do SQL Server.
  2. Execute a seguinte consulta:
    Use master Go Xp_readerrorlog
    
  3. No Resultados painel, localize o seguinte texto (onde X.X.X. X é o endereço IP da instância de SQL Server e Y é a porta TCP/IP onde SQL Server está ouvindo):
    Servidor SQL escutando X.X.X. X: Y
    Observação: Por exemplo, se você localizar o "server SQL escutando em 10.150.158.246: 1433" text in a Resultados painel, 10.150.158.246 é que o endereço IP do SQL Server e 1433 é a porta TCP/IP onde a instância de SQL Server está escutando.
Para verificar a configuração de porta de um instância de SQL Server, siga estas etapas:
  1. Inicie o Editor do registro.
  2. No Editor do registro, localize a seguinte chave do registro:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Servidor \<InstanceName>\MSSQLServer\SuperSocketNetLib\Tcp</InstanceName>
    Observação Se você estiver usando o SQL Server 2005, localize a seguinte subchave do registro:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft servidor \ SQL<MSSQL.x>\MSSQLServer\SuperSocketNetLib\Tcp\IPAll</MSSQL.x>
    Observe o valor de TCPDynamicPorts e o valor de TCPPort. Esses valores aparecem da seguinte maneira, dependendo de seu método de alocação de porta:
    • Alocação de porta estática
      Se você configurar uma instância de SQL Server para usar um porta estática e você ainda não reiniciou a instância de SQL Server, o valores do registro são definidos da seguinte maneira:
      TCPDynamicPorts = Última porta usado
      TCPPort = Nova porta estática para ser usado após a próxima reinicialização; nova porta estática Se você definir usando o Server Network Utility
      No entanto, se você configurar uma instância de SQL Server para usar um porta estática e reinicie a instância do SQL Server, os valores do registro são definidos como a seguir:
      TCPDynamicPorts = Em branco
      TCPPort = Nova porta estática Se você definir usando o Server Network Utility
    • Alocação de porta dinâmica
      Se você configurar uma instância de SQL Server usar alocação de porta dinâmica e você ainda não reiniciou a instância de SQL Server, os valores do registro são definidos da seguinte maneira:
      TCPDynamicPorts = Em branco
      TCPPort = 0
      No entanto, se você configurar uma instância de SQL Server para usar a alocação de porta dinâmica e reinicie a instância do SQL Server, os valores do registro são definidos da seguinte maneira:
      TCPDynamicPorts = Porta atual usada
      TCPPort = Porta atual usada

Configurando um instância de SQL Server para usar uma porta estática

SQL Server 2005 e SQL Server de 2008

Para configurar uma instância do SQL Server 2005 ou 2008 de SQL Server para usar uma porta estática, siga as etapas descritas a como: configurar um servidor para escutar em uma porta de TCP específica (SQL Server Configuration Manager) tópico nos Manuais Online do SQL Server 2005 ou nos Manuais Online do SQL Server de 2008.

Para configurar uma porta estática para o especializado dedicado administrador conexão (DAC), você deve atualizar a chave do registro que corresponde a sua instância. Por exemplo, a chave do Registro pode ser:
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Server\MSSQL SQL.X\MSSQLServer\SuperSocketNetLib\AdminConnection\Tcp
Observação O "X" no "MSSQL://.X"é um número que indica o diretório onde a instância é instalada para o SQL Server 2005 ou o nome da instância de SQL Server de 2008.

SQL Server 2000

Para configurar uma instância de SQL Server para usar uma porta estática, siga estas etapas:
  1. Inicie o utilitário de rede do servidor. Para fazer isso, siga um destes procedimentos:
    • Clique em Início, aponte paraProgramas, aponte para Microsoft SQL Server, e Clique em Utilitário de rede do servidor.
    • Clique em Inícioe clique em Executar. No Aberto caixa, digite Svrnetcn. exee depois Clique em OK.
    O Servidor Utilitário de rede caixa de diálogo é exibida.
  2. No Servidor Utilitário de rede caixa de diálogo, clique no Geral guia.
  3. NoInstâncias neste servidor lista, selecione a instância de SQL Server.

    Observação Se o protocolo TCP/IP está desativado, ative-o agora. Para fazer isso, clique em TCP/IP no Desativado Protocolos lista e, em seguida, clique em Ativar.
  4. No Ativado Protocolos Clique em TCP/IPe clique emPropriedades.
  5. No Porta padrão Digite uma número de porta estática e clique OK.

    Observação A porta estática que você especificar deve diferir do porta dinâmica que sua instância do SQL Server está escutando no momento. Para exemplo, se uma instância de SQL Server atualmente está escutando no TCP/IP dinâmico porta 1400, tipo 1500 para a nova porta estática.
  6. Clique em OKe clique emOK novamente.
  7. Reinicie a instância de SQL Server.
  8. Exibir os logs de erro de SQL Server para verificar se a instância de SQL Server está no momento usando a porta estática.

    Observação Se você tiver uma instância de SQL Server e siga as etapas especificadas em um nó de cluster, você poderá notar que os valores de registro TCPDynamicPorts e os valores de registro TCPPort em outros nós de cluster ainda mantém os valores antigos. Quando Mova o grupo de SQL Server para o nó de cluster correspondente e coloque SQL Server online no nó de cluster, os valores de registro em nós de cluster refletirá os valores corretos.
Talvez você queira definir a porta estática da sua instância do SQL Servidor para o mesmo número de porta a porta dinâmica que ele usado anteriormente. Para fazer isso, siga estas etapas:
  1. Exiba o valor de registro TCPDynamicPorts e o valor de registro TCPPort para determinar o número de porta dinâmica a instância anterior do SQL Server usada.
  2. No Server Network Utility, defina a porta estática um número de porta diferente que o valor do registro que você determinou na etapa 1.
  3. Reinicie a instância de SQL Server.
  4. No Server Network Utility, defina a porta estática o valor do registro que você determinou na etapa 1.
  5. Reinicie a instância de SQL Server.

Configurando um instância de SQL Server para usar uma porta dinâmica

SQL Server 2005 e SQL Server de 2008

Para configurar sua instância do SQL Server 2005 ou a instância de SQL Server de 2008 para usar uma porta dinâmica, use o método semelhante descrito o "como: configurar um servidor para escutar em uma porta de TCP específica (SQL Server Configuration Manager)" tópico nos Manuais Online do SQL Server 2005 ou nos Manuais Online do SQL Server de 2008. Para obter mais informações, consulte o tópico de Configuração de rede do servidor nos Manuais Online do SQL Server 2005 ou nos Manuais Online do SQL Server de 2008.

SQL Server 2000

Para configurar sua instância do SQL Server para usar uma porta dinâmica, siga estas etapas:
  1. Inicie o utilitário de rede do servidor. Para fazer isso, siga um destes procedimentos:
    • Clique em Início, aponte paraProgramas, aponte para Microsoft SQL Server, e Clique em Utilitário de rede do servidor.
    • Clique em Inícioe clique em Executar. No Aberto caixa, digite Svrnetcn. exee depois Clique em OK.
    O Servidor Utilitário de rede caixa de diálogo é exibida.
  2. No Servidor Utilitário de rede caixa de diálogo, clique no Geral guia.
  3. NoInstâncias neste servidor lista, selecione a instância de SQL Server.

    Observação Se o protocolo TCP/IP está desativado, ative-o agora. Para fazer isso, clique em TCP/IP no Desativado Protocolos lista e, em seguida, clique em Ativar.
  4. No Ativado Protocolos Clique em TCP/IPe clique emPropriedades.
  5. No Porta padrão caixa, digite0e clique em OK.
  6. Clique em OKe clique emOK novamente.
  7. Reinicie a instância de SQL Server.
  8. Exibir os logs de erro de SQL Server para verificar se a instância de SQL Server está no momento usando a porta dinâmica.

    Observação Se você tiver uma instância de SQL Server e siga as etapas especificadas em um nó de cluster, você poderá notar que os valores de registro TCPDynamicPorts e os valores de registro TCPPort em outros nós de cluster ainda mantém os valores antigos. Quando Mova o grupo de SQL Server para o nó de cluster correspondente e coloque SQL Server online no nó de cluster, os valores de registro em nós de cluster refletirá os valores corretos.

Solução de problemas

Se os clientes SQL Server não é possível acessar uma instância de SQL Server após ter configurado para usar um porta TCP/IP estática, podem existir as seguintes causas:
  • A firewall pode estar bloqueando a porta TCP/IP especificada.
    Se a porta que a instância de SQL Server está escutando no momento é bloqueada pelo firewall, as conexões falhará. Para obter informações sobre como configurar seu firewall para funcionar com o SQL Server, consulte o tópico Configurando o Firewall do Windows para permitir acesso de SQL Server no SQL Server 2008 Books Online. Embora este tópico é específico para SQL Server de 2008, a maioria das informações se aplica ao SQL Server 2005 e SQL Server 2000.

    Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
    287932Portas TCP necessárias para comunicação com SQL Server através de um firewall
    318432 Erro: Não é possível conectar a uma instância nomeada em cluster por meio de um firewall
    968872 Como abrir a porta de firewall para SQL Server no Windows Server 2008?
  • Outro programa já pode estar usando a porta TCP/IP especificada.
    Se outro programa já está usando a porta TCP/IP especificada, a porta não está disponível para a instância de SQL Server e SQL Server clientes podem não conseguir se conectar à instância do SQL Server.

    Isso problema é específico para uma instância de SQL Server que é configurado para usar um porta TCP/IP estática. Esse problema não ocorre para uma instância de SQL Server que é configurado para usar a alocação de porta dinâmica. Na alocação de porta dinâmica, se outro programa já está usando a porta TCP/IP especificada quando iniciar a instância de SQL Servidor, a instância de SQL Servidor seleciona uma nova porta.

    Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    293107Os clientes não podem se comunicar SQL Server pela porta 1433 ou a porta de que escuta de SQL Server
  • Uma instância nomeada do SQL Server está escutando na porta 1433.
    Se uma instância nomeada do SQL Server está escutando na porta 1433, o Microsoft OLE DB Provider para SQL Server (Provider = SQLOLEDB) e o Driver de ODBC do Microsoft SQL Server (Driver = {SQL Server}) pode não conseguir se conectar ao servidor. Essa falha de conexão ocorre quando o nome da instância e o número da porta da seqüência de conexão são omitidos. Não se for especificado nenhum número de porta, os drivers de validar o nome de instância do servidor. Se o nome de instância do servidor não é a instância padrão, MSSQLSERVER, a conexão não terá êxito. Para habilitar uma conexão bem-sucedida, você deve especificar o nome da instância ou o número da porta na seqüência de conexão ou em um Alias de SQL.

    Observações
    • Não recomendamos que você tenha uma instância nomeada escutam na porta 1433.
    • Outros provedores, como System.Data.SqlClient e SQL Native Client (Provider = SQLNCLI), não execute a verificação de nome de instância e se conectar com êxito.

Referências

Para obter mais informações, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
286303Comportamento de biblioteca de rede SQL Server 2000 durante a detecção de porta dinâmica
273673 Descrição de conexões de cliente de servidor Virtual SQL
328383 SQL Server clientes podem alterar protocolos quando os computadores cliente tentam se conectar a uma instância de SQL Server
Para obter mais informações sobre como configurar SQL Server para escutar em portas diferentes em diferentes endereços IP, consulte o como configurar o servidor SQL para escutar em portas diferentes em diferentes endereços IP? tópico no seguinte site da Web suporte Blog do Microsoft SQL Server:
http://blogs.msdn.com/sqlblog/Archive/2009/07/17/How-to-Configure-SQL-Server-to-LISTEN-on-different-Ports-on-different-IP-Addresses.aspx

Propriedades

ID do artigo: 823938 - Última revisão: terça-feira, 16 de julho de 2013 - Revisão: 6.1
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
Palavras-chave: 
kbsqlsetup kbsql2005cluster kbconnectivity kbupdate kbsqlclient kbnetwork kbfirewall kbconfig kbregistry kbhowtomaster kbmt KB823938 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 823938

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com