Tempo limite do SQL Server na primeira tentativa

9

Estou tendo um problema estranho em que tento conectar-me ao SQL Server 2008 em execução em um segundo computador (ambas as máquinas que executam o Win7 de 64 bits), por meio das Fontes de Dados no Visual Studio ou pelo próprio console do SQL Management.

Na primeira tentativa de conexão, ela expira. A segunda tentativa funciona bem.

Eu posso acessar compartilhamentos no segundo computador sem qualquer dificuldade, parece ser a primeira vez que tento me conectar ao SQL para cada instância do aplicativo. Ou seja, se eu abrir duas instâncias do Visual Studio, as duas falharão na primeira tentativa de conexão, mas serão bem-sucedidas na segunda. Eu tenho que conectar duas vezes para cada instância (independentemente da seqüência de falha / sucesso em qualquer outro aplicativo).

Espero que isso faça sentido.

Algum conselho?

    
por SergioL 10.09.2010 / 16:50

5 respostas

6

Acho que encontrei a solução, pelo menos no meu caso está funcionando. Estou usando o nome da instância e isso implica automaticamente uma porta dinâmica para o serviço do sql server. Alterei as configurações de dinâmico para uma porta de correção e, em seguida, abri o firewall nessa porta.

Gerenciador de configuração do SQL Server - > Configuração de rede do SQL Server - > Protocolos para 'InstanceName' - > TCP / IP - > Propriedades - > Endereços IP - > IP All - >

Aqui você vê duas opções:

  • Portas dinâmicas TCP: 51250 (geradas aleatoriamente)
  • Porta TCP: vazia - coloquei aqui 1433 e depois abri o firewall (caso ainda não estivesse aberto). Você pode colocar qualquer porta que quiser (eu coloquei 1433 porque era a única instância. No caso de várias instâncias você deve escolher para cada instância uma porta diferente e depois abri-las no firewall)

O script usado para facilitar sua tarefa de abrir as portas que baixei do MS e estou reproduzindo aqui (os comentários estão em alemão, mas devem ser óbvios):

@echo =========  Ports des SQL-Servers  ===================
@echo Aktivieren von Port 1433 für die SQLServer-Standardinstanz
netsh firewall set portopening TCP 1433 "SQLServer" 
@echo Aktivieren von Port 1434 für dedizierte Administratorverbindungen
netsh firewall set portopening TCP 1434 "SQL-Administratorverbindung" 
@echo Aktivieren von Port 4022 für den konventionellen SQL Server-Service Broker  
netsh firewall set portopening TCP 4022 "SQL-Service Broker" 
@echo Aktivieren von Port 135 für Transact-SQL-Debugger/RPC 
netsh firewall set portopening TCP 135 "SQL-Debugger/RPC" 
@echo =========  Ports für Analysedienste  ==============
@echo Aktivieren von Port 2383 für die SSAS-Standardinstanz
netsh firewall set portopening TCP 2383 "Analysedienste" 
@echo Aktivieren von Port 2382 für den SQL Server-Browserdienst
netsh firewall set portopening TCP 2382 "SQL-Browser" 
@echo =========  Verschiedene Anwendungen  ==============
@echo Aktivieren von Port 80 für HTTP 
netsh firewall set portopening TCP 80 "HTTP" 
@echo Aktivieren von Port 443 für SSL
netsh firewall set portopening TCP 443 "SSL" 
@echo Aktivieren des Ports für die Schaltfläche 'Durchsuchen' des SQL Server-Browserdiensts
netsh firewall set portopening UDP 1434 "SQL-Browser" 
@echo Zulassen von Multicast-/Broadcastantwort auf UDP (Aufzählung der Browserdienste OK)
netsh firewall set multicastbroadcastresponse ENABLE
    
por 28.10.2010 / 11:18
2

Parece um tiro no escuro usando uma venda nos olhos, mas pode ajudar. Há um thread antigo nos fóruns do Microsoft SQL Developer descrevendo o que parece ser o mesmo problema, junto com uma possível correção. Seu servidor está executando o Windows Server 2008, mas pode ser relevante para o seu Win7 configurado também.

O segmento:

link

Do encadeamento:

Yes, i have fixed this problem.

My windows server 2008 was configured to reject SASL LDAP binds (see warning 2886).

Since i have configured my server to not reject such binds, sql server 2008 connections work correct.

Você pode consultar o Microsoft KB 935834 para obter informações sobre como modificar as configurações de assinatura do LDAP (não é possível vinculá-lo a um novo usuário).

Espero que ajude!

    
por 29.09.2010 / 05:03
1

Meu melhor palpite é que você tenha AUTO_CLOSE ativado para o banco de dados. Isso significa que o banco de dados precisa ser ativado quando você se conecta, o que está causando o tempo limite inicial.

O segundo palpite é que ele pode ser relacionado à resolução do nome do host. Por isso, demora muito para resolver o nome do host pela primeira vez (por transmissão talvez?), Mas depois é armazenado em cache nas tentativas de conexão subseqüentes. O que você está usando para resolver o host? é no DNS? Tente alterar a cadeia de conexão para estar em um formato de porta IP. isto é, 192.168.100.100,1433

Você também pode tentar executar ipconfig /flushdns após uma tentativa de conexão bem-sucedida & veja se você consegue o mesmo comportamento. A solução desonesta é colocar a pesquisa em seu arquivo HOSTS, mas você deve corrigi-lo corretamente.

    
por 23.09.2010 / 15:29
0

Desativar o firewall. Rede de teste (ping). Farejar o tráfego de rede para o sql server (use wireshark )

    
por 22.09.2010 / 15:27
0

Você pode tentar executar o SQL Profiler antes de se conectar pela primeira vez com o VS ou SSMS e ver o que está acontecendo no SQL Server?

Além disso, você verificou os logs de eventos para ver se algo está sendo registrado?

    
por 24.09.2010 / 01:23