Eu tenho uma instância do SQL Server 2008 R2 em uma caixa do Windows 2008 R2, e o Windows não foi atualizado por quase um ano (eu sei), ontem à noite os patches do Windows foram aplicados (cerca de 100 que estavam pendentes) e esta manhã SQL Server não comece.
O erro no visualizador de eventos é:
initerrlog: não foi possível abrir o arquivo de log de erros 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL1\MSSQL\Log\ERRORLOG'. Erro do sistema operacional = 5 (falha ao recuperar texto para este erro. Razão: 15105).
De acordo com muitos links (por exemplo , SQLServerCentral ), descobri que isso parece ser algum tipo de problema de permissão. A conta de serviço que o SQL Server está configurada para usar é uma conta de serviço de rede, verifiquei isso no AD e parece estar OK e a senha está correta (nada mudou desde ontem a esse respeito, quando estava funcionando) também tentei :
Tornou o administrador local da conta de serviço na caixa (temporariamente)
Verifique se a conta de serviço também foi adicionada aos grupos do SQL Server no servidor
Dada permissão explícita à conta de serviço para a pasta de log de erros (controle total); depois para toda a pasta de arquivos do programa (controle total)
E ainda recebo o mesmo erro.
Em seguida, tentei alterar a conta de serviço usada (para um administrador de rede - (eu sei, apenas para testar) ou conta de serviço local) no Configuration Manager, ao aplicar essas alterações, recebo um erro de provedor WMI:
Erro do provedor WMI [chamada para código de erro do provedor WMI: 0x800742a2]
Estou um pouco confuso com isso e nunca vi algo parecido antes.
Alguém tem alguma idéia sobre o que está acontecendo, ou qualquer outra coisa para tentar que eu tenha perdido?
Editar 1:
Para adicionar, verifiquei os primeiros acertos ao procurar o erro WMI MS Support , SQLServerCentral , mas eles ainda parecem estar sugerindo problemas de permissões. Verifiquei novamente todos os itens acima relacionados a problemas de permissões e não consigo ver como esse é o problema (a conta de serviço agora é administrador local (!), nos grupos do SQL Server na caixa e tem controle total explícito para todos arquivos de Programas). Eu estou querendo saber se este erro WMI é um arenque vermelho ou um problema totalmente separado.
Edição 2:
Parece que havia algo com o arquivo ERRORLOG que estava impedindo a inicialização, não um problema de permissões - não tenho certeza do que, mas talvez uma corrupção ou algo do próprio arquivo, pois excluí-lo (bem, copiá-lo em outro lugar) parece ter forçado o SQL Servidor para gerar um novo e inicializou OK. Não tenho certeza do que está errado com o arquivo errorlog (vou ver se consigo abri-lo e investigar), e não sei qual foi o erro do WMI Provider, agora que o serviço está online não posso testar totalmente agora, tentarei novamente mais tarde em algum tempo de inatividade planejado para ver se o provedor WMI aparece (e atualizo isso conforme apropriado/adicione como resposta).
Edição 3 (atualização final):
Parece que todos os sintomas foram enganosos e a causa usual (permissões) para esse tipo de problema não foi a causa neste caso, foi um problema com o próprio arquivo ERRORLOG, e removê-lo (para ser recriado) resolveu o problema e surgiram os serviços. Eu adicionei uma resposta descrevendo isso. No entanto, este parece ser o único caso que posso encontrar desses sintomas com essa causa, e muitos casos em que são permissões, para as quais incluí links acima, a resposta nesta pergunta é detalhada. Portanto, se você tiver esse problema no futuro, sugiro seguir essas etapas (verificar primeiro o problema de permissões), antes de verificar o próprio arquivo ERRORLOG.
A solução oficial de acordo com o artigo da Microsoft é:
Referências
Mensagem de erro quando você altera a conta de serviço dos componentes do SQL Server 2008 para uma conta de administrador que não é de domínio em um controlador de domínio do Windows Server 2008: "O serviço não foi iniciado devido a uma falha de logon" ou "Erro de provedor WMI" (Suporte da Microsoft)
Erro do provedor WMI - ao alterar a conta do SQL Services (SQLServerCentral)
Gerenciador de configuração do SQL Server
Ao executar o SQL Server Configuration Manager e modificar as configurações, o gerenciador de configuração adicionará e removerá permissões em arquivos e diretórios com base nas alterações de configuração feitas.
É por isso que a Microsoft afirma que as alterações de configuração devem sempre ser feitas com o SQL Server Configuration Manager .
Referência: SQL Server Configuration Manager (Microsoft Docs)
Etapas reais a serem executadas
No seu caso, você pode ter executado várias das etapas, mas não na ordem correta. Tente o seguinte:
Caso isso não funcione, você pode ter quebrado ACLs (permissões) em algum nível na estrutura de Arquivos de Programas do SQL Server.
Contas e ACLs do SQL Server
Seu serviço ainda não está iniciando e ainda pode ser um problema com permissões (ACLs)?
Então você pode ter que corrigir as permissões de arquivo/pasta. A lista completa da conta do SQL Server e as permissões necessárias estão listadas nas seguintes documentações exaustivas:
Em todos os lugares em que o MSSQLServer for mencionado na documentação, substitua pela conta com a qual você deseja executar o SQL Server (INSTANCE) .
Por exemplo, ao verificar a seção Revisão de listas de controle de acesso criadas para contas de serviço do SQL Server do documento, certifique-se de que sua YourServiceAccount tenha acesso a:
Em vez de
MSSQLServer
usarYourServiceAccount
.Referências:
Esta é a atualização/correção final:
Suspeito que esse problema tenha sido bastante único e que todos os problemas indicados sejam enganosos - todos eles levam a problemas de permissões, o que acabou não sendo o problema. Conforme destacado por outra resposta, parece que, na maioria dos casos, esse seria o problema.
Nesse caso, parece ter havido um problema com o próprio arquivo ERRORLOG, remover o arquivo do local parece ter forçado o SQL Server a gerar um novo na inicialização e os serviços apareceram corretamente.
Mais tarde, testei a alteração das configurações no gerenciador de configuração e não havia sinal do erro do provedor WMI, o que também parece ter sido enganoso. Tudo parecia se resumir a um problema com o próprio arquivo ERRORLOG, em vez de acessá-lo. Vou tentar interrogar esse arquivo ERRORLOG e ver se consigo descobrir o que havia de errado com ele (e atualizar conforme apropriado), mas por enquanto parece que o problema está resolvido.
Resumo:
Na maioria dos casos, esses sintomas são provavelmente um problema de permissões, com links para problemas semelhantes na pergunta original e detalhados na resposta de @hot2use.
No entanto, (em casos provavelmente infrequentes, e foi neste caso), às vezes o problema é um problema com o próprio arquivo ERRORLOG, não com permissões para acessá-lo, e excluir (ou apenas mover para outro lugar) parece forçar o serviço SQL Server a apareça e gere um novo arquivo ERRORLOG.
Informações/links adicionais:
Links para problema semelhante da postagem original: -
SQLServer Central | MsSuporte | SQLAuthority
Um tipo diferente de problema com o provedor WMI (que parece ter sintomas semelhantes): - MsSupport
Link para responder a esta pergunta que entra em detalhes sobre o erro de permissões, que geralmente é a causa desses sintomas (mas não desta vez!): - AnswerByHot2use