AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 201861
Accepted
Ian_H
Ian_H
Asked: 2018-03-22 01:41:35 +0800 CST2018-03-22 01:41:35 +0800 CST 2018-03-22 01:41:35 +0800 CST

SQL Server 2008r2 não será iniciado após atualizações do Windows, log de erros e erros do provedor wmi

  • 772

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]

Erro do provedor WMI

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.

sql-server sql-server-2008-r2
  • 2 2 respostas
  • 2699 Views

2 respostas

  • Voted
  1. John K. N.
    2018-03-22T02:07:12+08:002018-03-22T02:07:12+08:00

    A solução oficial de acordo com o artigo da Microsoft é:

    Para contornar esse problema, adicione a conta de usuário de domínio ao grupo de domínio SQLServer2005MSSQLUser$ ComputerName $ InstanceName .

    Para fazer isso, siga estas etapas:
    1. Clique em Iniciar, aponte para Ferramentas Administrativas e clique em Usuários e Computadores do Active Directory .
    2. No snap-in Usuários e Computadores do Active Directory , clique em Usuários .
    3. Clique duas vezes em SQLServer2005MSSQLUser$ComputerName$InstanceName .
    4. Na caixa de diálogo Propriedades , clique na guia Membros .
    5. Na guia Membros , clique em Adicionar .
    6. Na caixa de diálogo Selecionar usuários, contatos, computadores ou grupos , digite o usuário em DomainName\UserNameformato em Digite os nomes dos objetos a serem selecionados e clique em OK . 7. Na caixa de diálogo Propriedades , clique em OK .

    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 .

    Importante
    Sempre use ferramentas do SQL Server, como o SQL Server Configuration Manager, para alterar a conta usada pelos serviços do SQL Server ou do SQL Server Agent ou para alterar a senha da conta. Além de alterar o nome da conta, o SQL Server Configuration Manager executa configurações adicionais, como definir permissões no Registro do Windows para que a nova conta possa ler as configurações do SQL Server. Outras ferramentas, como o Gerenciador de Controle de Serviços do Windows, podem alterar o nome da conta, mas não alteram as configurações associadas. Se o serviço não puder acessar a parte do registro do SQL Server, o serviço pode não ser iniciado corretamente.

    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:

    1. Abra o Gerenciador de Configuração do SQL Server
    2. Defina a conta de serviço do SQL Server (INSTANCE) para um usuário no qual você não deseja que o serviço seja executado
    3. Reinicie o serviço SQL Server (INSTANCE) para sua instância (deve falhar)
    4. Fechar o SQL Server Configuration Manager
    5. Adicione a conta de serviço na qual você deseja que o serviço SQL Server seja executado ao grupo especificado (conforme detalhado no início da postagem; etapas 1 a 7)
    6. Abra o Gerenciador de Configuração do SQL Server
    7. Defina a conta de serviço do SQL Server (INSTANCE) para o usuário que você acabou de adicionar ao grupo SQLServer2005MSSQLUser$ComputerName$InstanceName .
    8. Reinicie o serviço SQL Server (INSTANCE) para sua instância

    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:

    • Configurando contas de serviço do Windows (Microsoft Technet / 2008R2)
    • Configurar contas e permissões de serviço do Windows (Microsoft SQL Docs / 2012)

    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:

    Conta de serviço para | Arquivos e Pastas | Acesso
    -------------------+--------------------------+-- -------------
    MSSQLServer | Instid\MSSQL\backup | Controlo total
                        | Instid\MSSQL\binn | Ler, Executar
                        | Instid\MSSQL\data | Controlo total
    ....
    

    Em vez de MSSQLServerusar YourServiceAccount.

    Referências:

    • Configurando contas de serviço do Windows (Microsoft Technet / 2008R2)
    • Configurar contas e permissões de serviço do Windows (Microsoft SQL Docs / 2016+)
    • 1
  2. Best Answer
    Ian_H
    2018-03-24T02:00:22+08:002018-03-24T02:00:22+08:00

    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

    • 0

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve