Estamos migrando duas instâncias do SQL Server 2008 em uma máquina Win7 para o SQL Server 2019 em um servidor Win10. O servidor antigo tinha duas instâncias: 123.123.123.123 e 123.123.123.123\ABC. Não tivemos problemas para conectar a ambas as instâncias de todos os nossos computadores em rede.
No novo servidor as instâncias são: CMP0123456 e CMP0123456\ABC. Podemos nos conectar à instância sem a barra, mas não podemos nos conectar à instância com a barra. O erro é SQL Error 17: Servidor não existe ou acesso negado.
O ping CMP0123456 funciona para computadores remotos.
Verifiquei se o gerenciador de configuração e os serviços do SQL Server e do SQL Server Agent estão em execução para ambas as instâncias. O navegador também está em execução. Ambas as instâncias usam os protocolos TCP/IP e de memória compartilhada. Pipes nomeados estão desabilitados.
Posso acessar ambas as instâncias por meio do SSMS local.
Eu não sou um DBA. Não configurei o servidor antigo ou o SQL Server 2008. Estou apenas vagamente familiarizado com problemas de rede. Verifiquei o firewall no novo servidor e ambas as portas 1433 e 1434 estão habilitadas/abertas. 1433 usa TCP e 1434 usa UDP.
Por alguma razão, o PolyBase tem as portas 1433 e 1434. Instalei o PolyBase, mas não acho que realmente precise dele. Se esse for o problema, existe uma maneira de associar as portas 1433 e 1434 diretamente ao SQL Server 2019?
Ou há alguma outra configuração no SQL Server e/ou no Firewall/Networking/DNS que preciso alterar para que os computadores remotos vejam a instância \ABC?
Cada instância do SQL Server escuta em uma porta diferente. Sua instância padrão está escutando na porta 1433, mas a instância nomeada deve escutar em uma porta diferente para evitar conflitos, que é atribuído dinamicamente por padrão.
Certifique-se de que o firewall também permita conexões TCP para a porta da instância nomeada. O número da porta dinâmica pode ser identificado usando o SQL Server Configuration Manager (C:\Windows\System32\SQLServerManager15.msc) e também é registrado no log de erros do SQL Server na inicialização (por exemplo, "O servidor está escutando em ['qualquer' 12345]" ).
Para evitar problemas de conectividade, caso o número da porta dinâmica da instância nomeada seja alterado, atribua um número de porta estático à instância nomeada (junto com a regra de firewall TCP) ou crie uma regra de firewall para o executável do aplicativo SQL Server da instância nomeada (por exemplo, C:\Program Files \Microsoft SQL Server\MSSQL15.ABC\MSSQL\Binn\sqlservr.exe").
Execute os comandos do PowerShell abaixo em uma máquina remota para verificar a conectividade da porta TCP para cada instância.
O SQL Server Browser é usado quando um nome de instância (em vez de um número de porta) é especificado na cadeia de conexão do cliente. A API do cliente envia uma solicitação UDP 1434 ao serviço do navegador, que retorna um datagrama que inclui o número da porta da instância nomeada atual para uso posterior. A implicação é que o serviço SQL Server Browser esteja em execução e o UDP 1434 permitido pelo firewall para se conectar a uma instância nomeada pelo nome.
Infelizmente, não há um comando interno do PowerShell para testar a conectividade de porta UDP remota (pelo menos que eu saiba). Mas com a ajuda de objetos .NET, pode-se verificar a conectividade remota do SQL Server Browser com a ajuda deste script, que envia uma consulta de navegador UDP 1434 (engenharia reversa de um rastreamento de rede) para obter informações para a instância nomeada especificada.