Tenho dois servidores no SQL Server 2019 que decidiram aleatoriamente parar o serviço do SQL Server Browser. Ao tentar reiniciá-lo, ele desliga-se imediatamente. Usando o prompt de comando abaixo para iniciar no modo console no servidor host do banco de dados para obter mais feedback, vejo que ele está iniciando com sucesso, mas chega ao ponto "Não foram encontradas instâncias do mecanismo SQL instaladas -- não escutando no SSRP." que é onde ele desliga-se novamente.
C:\Windows\system32>"C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe" -c
SQLBrowser: starting up in console mode
SQLBrowser: starting up SSRP redirection service
SQLBrowser is successfully listening on ::[1434]
SQLBrowser is successfully listening on 0.0.0.0[1434]
SQLBrowser: Found no installed SQL engine instances -- not listening on SSRP.
SQLBrowser: Both SSRP and OLAP redirection services are disabled. Shutting down browser service
A única informação que consigo encontrar sobre isso faz referência à chave de registro ausente ou desabilitada para SSRP, que já verifiquei que está corretamente instalada.
HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\90\SQL Browser\SSRPListener
A chave é definida para um valor de 1. Para validar, eu a defino para 0, ponto em que o SQL Browser não inicia de forma alguma. Retornando para 1, ele retorna ao comportamento original de iniciar com sucesso e então desligar-se imediatamente.
Enquanto isso, os bancos de dados em si são acessíveis, então eu sei que de fato HÁ instâncias de mecanismo SQL instaladas que devem estar visíveis/escutando, e estou completamente perplexo sobre como prosseguir aqui. Qualquer migalha de ideia seria apreciada.
Editar para adicionar captura de tela, o lado esquerdo é o SQL Server 2019, onde ele quebrou, com o SQL Server 2014, onde ele ainda está funcionando como esperado, à direita.
Parece que alguém ou algo corrompeu o registro naquela/naquelas máquinas. Sua melhor opção é executar um reparo em cada instância da máquina.
Obter um procmon ou verificar o registro manualmente deve mostrar que não há resultados retornados de uma consulta do registro na chave de instância do SQL Server, e é por isso que você está recebendo esta mensagem.
Encontrei o problema. Apesar de ser um SO de 64 bits com instâncias de SQL Server de 64 bits, o SQL Browser estava iniciando procurando por InstalledInstances na área de registro de 32 bits.
Consegui corrigir o problema removendo InstalledInstances de Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server
Como ele então puxou corretamente os nomes de instância da área de registro de 64 bits. Essencialmente, uma chave de registro existia e não deveria estar lá.