Solucionando problemas: tempo limite expirado
O erro "Tempo limite expirou" ocorre geralmente quando uma instância do Mecanismo de Banco de Dados do SQL Server não está sendo executada, quando o nome do servidor foi digitado incorretamente ou quando há problemas de rede ou firewalls.
Texto do erro
No SQL Server Management Studio esse erro aparece como:
"Não é possível conectar-se ao <nome_do_servidor>."
"Tempo limite esgotado. O período de tempo limite decorreu antes da conclusão da operação ou o servidor não está respondendo. (Microsoft SQL Server, Erro: -2)"
Do sqlcmd, possíveis erros de tempo limite incluem:
"Interfaces de rede SQL: erro ao localizar Servidor/Instância especificada"
"Sqlcmd: Erro:Microsoft SQL Server Native Client: o cliente não pôde estabelecer conexão."
"Sqlcmd: Erro:Microsoft SQL Server Native Client: tempo limite de logon expirado."
"Não foi possível abrir uma conexão com o SQL Server"
"Erro ao estabelecer uma conexão com o servidor. Ao se conectar com o SQL Server, essa falha pode ter sido causada pelo fato de que com essas configurações padrão o SQL Server não permite conexões remotas."
Causas típicas desse erro
Causa |
Resolução |
---|---|
O nome do servidor foi digitado incorretamente. |
Tente novamente com o nome de servidor correto. |
O serviço do SQL Server no servidor não está sendo executado. |
Inicie uma instância do Mecanismo de Banco de Dados do SQL Server. |
A porta TCP/IP para a instância do Mecanismo de Banco de Dados está bloqueada por um firewall. |
Configure o firewall para permitir acesso ao Mecanismo de Banco de Dados. |
O Mecanismo de Banco de Dados não está escutando na porta 1433 porque foi alterado ou porque não é a instância padrão e o serviço Navegador SQL Server não está sendo executado. |
Inicie o serviço Navegador SQL Server ou conecte especificando o número da porta TCP/IP. |
O serviço Navegador SQL Server está em execução, mas a porta UDP 1434 está bloqueada por um firewall. |
Configure o firewall para permitir acesso à porta UDP 1434 no servidor ou conecte especificando o número da porta TCP/IP. |
O cliente e servidor não são configurados para usar o mesmo protocolo de rede. |
Usando o SQL Server Configuration Manager, confirme se os computadores servidor e cliente têm pelo menos um protocolo ativado em comum. |
A rede não pode resolver o nome de servidor para um endereço IP. Isso pode ser testado usando o programa PING. |
Solucione o problema de nome do computador em sua rede ou conecte usando o endereço IP do servidor. Esse não é um problema do SQL Server. Para obter ajuda, consulte a documentação do Windows ou o administrador de rede. |
A rede não pode conectar usando o endereço IP. Isso pode ser testado usando o programa PING. |
Solucione o problema de TCP/IP em sua rede. Esse não é um problema do SQL Server. Para obter assistência, consulte a documentação do Windows ou o administrador de rede. |
Erros incomuns
Endereços IP de vários servidores
Clientes do Windows Vista ou do Windows Server 2008 podem receber esse erro ao se conectarem com uma instância nomeada do SQL Server instalada em um cluster ou em um computador não-clusterizado com vários endereços IP. Esse problema pode ocorrer em todas as versões do SQL Server.
Causa
Ao conectar-se com uma instância nomeada em um computador remoto, o cliente usa o protocolo UDP para se conectar ao Serviço de Navegador do SQL Server no cluster ou no computador do SQL Server para obter o ponto de extremidade da conexão (o número de porta TCP ou o pipe nomeado).
Os firewalls no cliente Windows Vista ou no Windows Server 2008 não permitem mapeamento de origem flexível para UDP. Quer dizer, a resposta deve voltar do mesmo endereço IP que foi consultado. Se a resposta não for retornada do endereço IP que era originalmente o destino, o firewall do cliente descartará o pacote. Esse problema pode ocorrer ao tentar conexão a um servidor clusterizado ou a um computador de servidor não-clusterizado que tenha vários endereços IP.
A tabela a seguir descreve as combinações do sistema operacional que podem fazer com que os pacotes UDP sejam descartados. Isto impede a conexão a uma instância nomeada do SQL Server ou a uma instância padrão do SQL Server que não está escutando na porta TCP 1433.
Sistema operacional do cliente |
Sistema operacional que está executando o SQL Server |
SQL Server 2008 resultado |
SQL Server 2005 resultado |
---|---|---|---|
Windows XP ou Windows Server 2003 |
Windows XP ou Windows Server 2003 |
Os pacotes UDP não são descartados. |
Os pacotes UDP não são descartados. |
Windows XP ou Windows Server 2003 |
Windows Vista ou Windows Server 2003 |
Os pacotes UDP não são descartados. |
Os pacotes UDP não são descartados. |
Windows Vista ou Windows Server 2008 |
Windows XP ou Windows Server 2003 |
Os pacotes UDP são descartados. Falha na conexão. |
Os pacotes UDP são descartados. Falha na conexão. |
Windows Vista ou Windows Server 2008 |
Windows Vista ou Windows Server 2008 (x86, IA64) |
Os pacotes UDP não são descartados. |
Os pacotes UDP são descartados. Falha na conexão. |
Windows Vista ou Windows Server 2008 |
Windows Vista ou Windows Server 2008 (x64) |
Os pacotes UDP são descartados. Falha na conexão. |
Os pacotes UDP são descartados. Falha na conexão. |
Resolução
Para resolver esse problema, execute um das seguintes ações:
Especifique o número da porta de TCP ou nome de pipe nomeado como parte do nome de servidor na cadeia de conexão.
Crie uma exceção no Firewall do Windows com Segurança Avançada no computador de cliente.
Cuidado As exceções no Firewall podem tornar o computador ou a rede mais vulneráveis a ataques de usuários mal-intencionados ou por software mal-intencionado, como vírus. Não recomendamos essa solução alternativa, mas fornecemos essa informação para que você possa implementá-la por sua conta e risco nos casos em que a alternativa não seja praticável.
Uma exceção pode ser qualquer uma das seguintes opções:
Adicione uma regra de exceção para o aplicativo que se conecta ao SQL Server.
Adicione uma regra de entrada que permita o tráfego de todos os possíveis endereços de IP do computador ou cluster do SQL Server.
Turco ou Azeri
As tentativas de conexão podem falhar quando o idioma atual for turco ou azeri e o nome de servidor contiver "I". Para evitar esse problema, conecte ao servidor usando o endereço IP. Se "I" estiver no nome de instância, especifique o número da porta TCP/IP ao se conectar. Para se conectar a uma porta específica use um alias.
Observação |
---|
Para ajudar a solucionar problemas de conexão, use o tutorial Tutorial: introdução ao Mecanismo de Banco de Dados. |