Tenho duas máquinas, cada uma com uma instância padrão do SQL Server 2008 instalada; cada um exibindo um comportamento diferente.
- No PC1, quando executo
sqlcmd -Lc
, não vejo o PC1 na lista de servidores SQL na rede local quando o SQL Browser Service não está em execução. Quando inicio o serviço do navegador SQL, PC1 aparece na lista. - No PC2, quando executo
sqlcmd -Lc
, vejo o PC2 na lista, independentemente de o SQL Browser Service estar ou não em execução. Se o SQL Browser Service estiver em execução, também vejo PC2\SQLEXPRESS.
Por que a instância SQL padrão do PC1 não aparece na lista de SQL Servers?
Por que sqlcmd -Lc não mostra a instância local?
e no seu caso, mesmo que o serviço do servidor SQL esteja funcionando.
ok, primeiro falaremos sobre o que o sqlcmd -Lc faz
it " Lista os computadores servidores configurados localmente e os nomes dos computadores servidores que estão transmitindo na rede " para referência
e uma nota a ter em mente é
" Devido à natureza da transmissão em redes, o sqlcmd pode não receber uma resposta oportuna de todos os servidores " para referência
O serviço de navegador do SQL Server é o serviço que transmite e, na inicialização, o navegador do SQL Server inicia e reivindica a porta UDP 1434.
se você desconectar sua máquina da rede e digitar sqlcmd -Lc, não conseguirá ver sua máquina listada, porque se ela não receber uma resposta de outros SQLs disponíveis, ela não se listará.
Agora, para saber mais sobre por que às vezes o sql server não aparece, você precisa saber sobre o UDP e como o sql server o usa para descobrir outros servidores sql
O UDP é um protocolo sem conexão que o UDP usa portas, ele permite que vários processos usem o UDP ao mesmo tempo. Como é sem conexão, qualquer propriedade semelhante à conexão entre dois sistemas deve ser tratada pelo aplicativo. É um protocolo bastante pequeno e, portanto, ocupa relativamente pouca largura de banda no fio.
SQL Server, usa UDP de duas maneiras
Para descobrir outros SQL Servers que estão por aí. Para descobrir como se conectar a uma instância nomeada.
agora, depois de saber como funciona o serviço sql server e como ele usa o UDP, aqui abaixo está uma lista de razões pelas quais você não vê sua instância local aparecendo
As comunicações UDP ficam "perdidas" no caminho.
A porta UDP 1434 está bloqueada na rede com firewall ou firewall do Windows ou política IPSEC
Estas podem ser as razões e eu sugiro usar um produto como o sqlping para descobrir seu sql na rede, porque se ele não aparecer, não significa que não está lá, é apenas a maneira como a transmissão é o problema
Atualizações:
Certifique-se de que ( O sinalizador HideInstance é Não )
1) No SQL Server Configuration Manager, expanda SQL Server Network Configuration, clique com o botão direito do mouse em Protocols for e selecione Properties. Na guia Sinalizadores, na caixa HideInstance, verifique se é No .
2) Certifique-se de que (Sql Browser Service está ativo ), vá para o SQL Server Configuration Manager, verifique as propriedades do serviço SQL Browser, na guia Avançado, verifique se está ativo e reinicie-o
3) Por fim, tente esta chave de registro
certifique-se de que tem valor,
1
se você não conseguir encontrá-lo na pasta 90, procure porSsrpListener