Database
 sql >> Base de Dados >  >> RDS >> Database

Usando instâncias nomeadas? Teste sua conexão DAC!


Brincando hoje, descobri que não conseguia me conectar à minha instância nomeada local usando a conexão de administrador dedicada (também conhecida como DAC, mas não aquela DAC):


Não é possível conectar a ADMIN:PLASKETT\SQL2012.

Ocorreu um erro relacionado à rede ou específico da instância ao estabelecer uma conexão com o SQL Server. O servidor não foi encontrado ou não estava acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. (provedor:SQL Network Interfaces, erro:43 – Ocorreu um erro ao obter a porta de conexão de administrador dedicada (DAC). Certifique-se de que o SQL Browser esteja em execução ou verifique o log de erros para obter o número da porta) (Microsoft SQL Server, Erro:-1)

Isso é local, portanto, é claro que a seguinte configuração de nível de servidor para permitir conexões de administrador remoto não tem efeito neste cenário específico:
EXEC sp_configure 'remote admin connections', 1;
GO
RECONFIGURE;
GO

Descobri que poderia me conectar se habilitasse o sinalizador de rastreamento 7806, mesmo que esse sinalizador de rastreamento seja destinado ao SQL Server Express (conforme documentado aqui). Mas eu sabia que o problema tinha que ser mais profundo do que isso – a Microsoft não poderia ter quebrado totalmente esse recurso, certo?

Acontece que esse sintoma afeta apenas instâncias *nomeadas*. Eu estava falando sobre isso com Jonathan Kehayias, que tinha uma instância padrão e podia se conectar bem. No entanto, ele não poderia se conectar se especificasse explicitamente o número da porta, o que o levou a descobrir que o TCP/IP estava desabilitado.

Embora isso afete instâncias nomeadas do Developer Edition especificamente porque o protocolo TCP/IP está desabilitado por padrão, há outros cenários em que isso pode prejudicá-lo se você tiver instâncias nomeadas e…
  • você [acidentalmente] implantou o Developer Edition na produção (malandro malandro);
  • você desativou o TCP/IP em qualquer edição; ou,
  • o serviço SQL Server Browser não está em execução.

Para resolver isso, certifique-se de que o TCP/IP esteja habilitado por meio do SQL Server Configuration Manager> Protocolos de rede para e verifique se o SQL Server Browser Service está em execução. Você precisará reiniciar o SQL Server.

Agora, quando você conseguir se conectar via DAC, se tentar se conectar no Management Studio, receberá esta mensagem de erro:



Esta mensagem de erro é benigna (e acredito que vem da conexão IntelliSense em segundo plano). Você pode ver na barra de status que está conectado e pode verificar se sua conexão é a conexão DAC descartando esta mensagem de erro e executando uma consulta.

De qualquer forma, confirmar que você pode se conectar por meio do DAC é uma etapa absolutamente essencial em seu plano de recuperação de desastres. Se você não conseguir se conectar ao DAC, planeje uma ou ambas as ações a seguir durante a próxima janela de manutenção (ou antes, se puder pagar uma reinicialização do serviço):
  • ativar TCP/IP
  • ativar sinalizador de rastreamento 7806

Em ambos os casos, certifique-se de que o SQL Server Browser Service esteja em execução. Certifique-se também de que a configuração do servidor para habilitar conexões remotas esteja habilitada, pois você nunca sabe onde pode estar quando precisar acessar um servidor que não responde.

Kendra Little escreveu um ótimo post no blog sobre o DAC no ano passado. É divertido pesquisar e ver o que você pode fazer com o DAC, e é muito bom saber que está lá, mas também é importante saber como ele pode não ser capaz de ajudá-lo no caso de dificuldades reais do servidor.