Como limpar um erro 15404 após uma reinicialização do banco de dados (além da reinicialização)


9

De vez em quando (por exemplo, ~ meses), um trabalho por hora do SQL Server Agent começa a relatar um erro 15404 e continua a fazê-lo até ser intervindo.

[298] Erro SQLServer: 15404, não foi possível obter informações sobre o grupo / usuário do Windows NT 'DOMAIN_NAME \ SomeDomainAccount', código de erro 0x6e. [SQLSTATE 42000] (ConnIsLoginSysAdmin)

Às vezes, a primeira falha ocorre imediatamente após uma reinicialização manual dos serviços SQL Server Engine e SQL Server Agent. O problema pode ser resolvido reiniciando a máquina.

O proprietário da tarefa é o nome listado na mensagem de erro e é um administrador do SQL Server.

A conta do Serviço de Mecanismo do SQL Server parece ser uma conta de serviço (acredito que seja a conta de instalação padrão (um nível melhor que o NetworkService genérico para evitar interferência entre instâncias do Mecanismo / Agente):

   NT Service\MSSQL$INSTNAME

Seria uma coisa se o trabalho sempre falhasse, mas como o trabalho é bem-sucedido após uma reinicialização, me faz pensar que uma conta de serviço como deveria estar funcionando e que há algum problema de tempo de A / D ou possivelmente um bug. Quando a TI é questionada sobre a configuração A / D, a resposta geralmente é "nada mudou".

  • Reiniciar os serviços do mecanismo e do agente pode fazer com que o trabalho comece a falhar.
  • Uma reinicialização da máquina limpa o problema.
  • Uma reinicialização subsequente imediata do mecanismo e do agente não causa mais falha no trabalho.

Link: Como solucionar um erro do SQL Server 8198


Atualização, isso aconteceu mais duas vezes desde o post.
22714 Crokusek

Possivelmente relacionado, também temos um problema intermitente (semanal) que não pode gerar SSPI em dois servidores diferentes.
crokusek

Vou acrescentar que obtive esse erro aleatoriamente a partir de um script SQL que estava funcionando ontem. Nenhuma alteração no script, exatamente a mesma máquina, nenhum erro óbvio nos logs do Windows. A linha incorreta do SQL era uma instrução CREATE ASSEMBLY, AUTHORIZATION [dbo], PERMISSION_SET = EXTERNAL_ACCESS;
precisa saber é

Mais informações. A reinicialização do SQL Server não resolveu o problema, mas a reinicialização da máquina. Possivelmente, um logoff / logon teria feito isso, pois suspeito que seja algum problema sutil na minha conta de domínio. Observe que não mudei minha senha recentemente.
redcalx

Respostas:


4

Não é uma solução, mas você pode solucionar o problema transformando o proprietário da tarefa em uma conta SQL.

Sempre que um trabalho é iniciado, o SQL Server verifica a identidade do proprietário do trabalho e verifica se ele tem permissão para executá-lo. Se o proprietário for uma conta do Windows, o mecanismo precisará consultar o Active Directory. Se, por algum motivo, falhar, o trabalho não será executado. Pode ser porque o servidor AD está ocupado, inativo ou cortado da rede ou que a conta de serviço do SQL Server não tem direitos.

Como funciona imediatamente após a reinicialização, isso me faz pensar que pode ter algo a ver com credenciais em cache. O Windows salvará as credenciais pesquisadas para uso posterior. Esse cache é limpo na reinicialização. Talvez algo esteja corrompendo o cache.


Eu acredito que você está correto, é credenciais em cache, a reinicialização força um logon no servidor do Active Directory. Eu recebo este erro nos diagramas de banco de dados Quando estou desconectado da rede da empresa, conecto a ele e não há erro. Desconecte e minha permissão será perdida. Eu posso consultar, criar etc - simplesmente não pode diagrama. 15404 erro.
StixO 15/02

0

Eu tive um problema com uma instância movida do domínio A para o domínio B E verifiquei as permissões em todos os lugares e concedeu controle total em todos os lugares. A conta de serviço alterada, a propriedade do trabalho, criou um novo trabalho .... Nada funcionou. Foi encontrado o mesmo nome de usuário do serviço B \ sqlservice e A \ sqlservice existente como logon no SQL Server. Após excluir o logon A \ sqlservice, tudo começou a funcionar corretamente. Isso significa que alguns ponteiros do Windows estavam errados


Para esclarecer, você estava recebendo esse erro, e o erro relatado B\sqlserviceera a conta sobre a qual não era possível obter informações?
RDFozz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.