Recentemente, e em mais de uma ocasião agora, tentamos nos conectar de uma de nossas instâncias do SQL Server a outra usando o SSMS apenas para ser recebido com o seguinte erro:
Um erro severo ocorreu no comando atual. Os resultados, se existirem, deveriam ser descartados.
O seguinte erro ocorre quando tentamos conectar usando o SSMS localmente:
Uma conexão foi estabelecida com sucesso com o servidor, mas ocorreu um erro durante o processo de login. (provedor: provedor de memória compartilhada, erro: 0 - nenhum processo está na outra extremidade do pipe.) (Microsoft SQL Server, erro: 233)
As conexões por meio da Conexão Administrativa Dedicada (DAC) resultam nos mesmos erros. SQLCMD revela o seguinte erro:
O SQL Server Configuration Manager informa que o serviço SQL Server e o serviço SQL Server Agent estão em execução.
O log de erros do SQL Server é interrompido ao mesmo tempo em que as entradas no Visualizador de Eventos começam a ser registradas, relatando problemas de conexão para trabalhos do SQL Server Agent.
Trabalho agendado do SQL Server 'sp_WhoIsActive' (0x868EBDEC06F71344AC717E0C6A333D13) - Status: Falha - Invocado em: 2018-09-18 10:38:00 - Mensagem: O trabalho falhou. Não é possível determinar se o proprietário (sa) do trabalho sp_WhoIsActive tem acesso ao servidor (motivo: não é possível conectar ao servidor - verifique os logs de erro do SQL Server e do SQL Server Agent).
Todos os nossos serviços do SQL Server foram configurados para serem executados em Contas de Serviço Gerenciado por Grupo (gMSA's).
A única solução até agora foi reiniciar os servidores, mas claramente esta não é uma solução satisfatória, especialmente porque o problema já ocorreu mais de uma vez.
A única coisa que temos que fazer é que há várias ocorrências para a seguinte mensagem de erro no log de erros do SQL Server antes que os problemas de conexão ocorram.
2018-09-17 13:31:19.20 Logon Falha no login para o usuário '[domínio][gMSA account for SQL Agent]$'. Motivo: Falha ao abrir o banco de dados explicitamente especificado '[database_name]'. [CLIENTE: [máquina local]] 17/09/2018 13:32:03.63 Erro de logon: 18456, Gravidade: 14, Estado: 38.
É possível que o número máximo de conexões tenha sido excedido como resultado desses problemas de login? Em caso afirmativo, por que ainda não é possível conectar via DAC?
Alguém por favor pode aconselhar?
Detalhes adicionais:
- Microsoft SQL Server 2016 (SP1-CU8) (KB4077064) - 13.0.4474.0 (X64) 24 de fevereiro de 2018 13:53:17 Direitos autorais (c) Microsoft Corporation Web Edition (64 bits) no Windows Server 2016 Standard 10.0 (Build 14393: ) (Hipervisor)
- SQL Server Management Studio v17.8.1
- O número máximo de conexões de usuário é definido como ilimitado (0).
- Memória Compartilhada, TCP/IP e Pipes Nomeados estão todos habilitados.
Ao aplicar qualquer alteração nos serviços do SQL Server, é aconselhável fazer isso por meio do SQL Server xxxx Configuration Manager para garantir que todas as permissões relacionadas (arquivos / diretórios / bancos de dados / instâncias) e políticas sejam definidas corretamente.
Corrigindo contas de serviço (permissões e tudo)
Redefiniremos todas as permissões para arquivos, diretórios e configurações de registro, incluindo. quaisquer políticas que possam existir de acordo com os requisitos das contas de serviço seguindo estas etapas rápidas.
Alterar as contas de serviço para contas locais
Abra o SQL Server 2016 Configuration Manager e navegue até a ramificação SQL Server Services .
No painel direito do Configuration Manager, clique com o botão direito do mouse no serviço SQL Server e selecione Propriedades .
Na janela Propriedades do SQL Server (Nome da Instância) , verifique se você está na guia Logon .
Altere o seletor para Conta integrada e selecione uma das três opções:
Pressione Aplicar e quando a caixa de diálogo aparecer notificando que "...qualquer alteração que você fez não terá efeito até que você reinicie" clique em OK .
Pare o serviço do SQL Server (InstanceName)
Inicie o serviço SQL Server (IntanceName)
Verifique novamente o SQL Server ERRORLOG para quaisquer problemas.
Repita as etapas 2 a 8 para o serviço SQL Server Agent (InstanceName) .
Altere as contas de serviço de volta para contas de serviço gerenciadas do grupo
Abra o SQL Server 2016 Configuration Manager e navegue até a ramificação SQL Server Services .
No painel direito do Configuration Manager, clique com o botão direito do mouse no serviço SQL Server e selecione Propriedades .
Na janela Propriedades do SQL Server (Nome da Instância) , verifique se você está na guia Logon .
Altere o seletor para Esta conta e insira os detalhes do seu gMSA para o serviço SQL Server (InstanceName).
Pressione Aplicar e quando uma caixa de diálogo aparecer notificando que "...qualquer alteração que você fez não terá efeito até que você reinicie" clique em OK .
Pare o serviço do SQL Server (InstanceName)
Inicie o serviço SQL Server (IntanceName)
Verifique novamente o SQL Server ERRORLOG para quaisquer problemas.
Repita as etapas 2 a 8 para o serviço SQL Server Agent (InstanceName) .
Os serviços devem agora ter sido reconfigurados de acordo com os requisitos dos serviços individuais.
Suspeitamos fortemente que esse problema pode estar relacionado aos vários erros de conexão destacados no log de erros do SQL Server (consulte a postagem original acima) que precederam o problema. O número máximo de conexões pode ter sido excedido.
Desde então, reiniciamos o servidor de banco de dados e resolvemos os problemas de conexão. Revisitaremos este post se este não for o problema!