Skip to content

Archives

  • Março 2022
  • Fevereiro 2022
  • Janeiro 2022
  • Dezembro 2021
  • Novembro 2021

Categories

  • Sem categorias
Calor Blogfever risk

Recuperar Recurso de SQL Server de Banco de dados

admin - Fevereiro 10, 2022

Por: Daniel Farina | Atualizado em: 2019-10-25 | Comentários (2) | Relacionados: Mais > Configurações do SQL Server

como Configurar o SQL Server para obter o Melhor Desempenho
  • Livre MSSQLTips Webinar: Como configurar o SQL Server para obter o Melhor Desempenho
  • problema
  • Solution
  • o banco de dados SQL Server mssqlsystemresource
  • recuperando o banco de dados SQL Server mssqlsystemresource
  • próximas etapas
  • Sobre o autor

Livre MSSQLTips Webinar: Como configurar o SQL Server para obter o Melhor Desempenho

Participar deste webinar para saber sobre as melhores práticas e os passos a tomar para certificar-se de sua configuração do SQL Server está configurado para maximizar o desempenho.

problema

um patch foi aplicado automaticamente à minha instância do SQL Server pelo Windows Update.Isso poderia ter passado despercebido, como geralmente acontece com as atualizações do Windows. Quando tentei acessar minha instância do SQL Server, descobri que o banco de dados wasabsent mssqlsystemresource de onde deveria estar e o SQL Server não inicializaria. Nesta Dica, direi como resolvi issoemissão.

Solution

outro dia tentei me conectar ao meu ambiente de teste do SQL Server withSQLServer Management Studio e recebi a mensagem de erro “server not found”.

como uma reação normal, abri o SQL Server Configuration Manager para verificar o status do SQL Serverservice; e como você pode imaginar, o serviço não estava em execução. Neste ponto, eu estava um pouco preocupado, porque os serviços para SQL Server estão configurados para iniciar automaticamente.

precedi com o primeiro passo de recuperação, que era tentar iniciara instância e ver o que acontece. Como tentei iniciar a instância do SQL Server, recebi a seguinte mensagem de erro informando que a solicitação falhou e que tenho que consultar o log de eventos ou otherapplicable error log para obter detalhes. Você pode ver a mensagem na tela capturebelow.

 SQL Server falha ao iniciar.

neste ponto, percebi que não era uma coisa fácil de resolver, então segui as instruções do themessage e abri o aplicativo visualizador de Eventos para visualizar oevent log em busca de uma resposta.

primeiro, olhei para o log do aplicativo e procurei um evento com um sourceequal para MSSQLSERVER, que é a instância do SQL Server que eu estava solucionando problemas.Descobri que havia um erro relacionado ao SQL Server que dizia “OpenFailed: não foi possível abrir filemssqlsystemresource.erro do sistema operacional mdf: 2” (o sistema não conseguiu encontrar o arquivo especificado) asis mostrado na captura de tela abaixo. Para aqueles de vocês que não sabem, o arquivo acima é parte do que é conhecido como banco de dados de recursos e isrequired para SQL Server para iniciar.

o Log de Eventos mostra esse arquivo mssqlsystemresource.mdf não foi encontrado.

o banco de dados SQL Server mssqlsystemresource

o banco de dados mssqlsystemresource é o banco de dados físico que contém todas as definições dos objetos do sistema incluídos no SQL Server. Este databaseis só de leitura e não é acessível mesmo para os membros do servidor sysadmin roleunless a instância é acessada através de adedicated conexão de administrador depois de beingstarted no modo de usuário único (com a –m opção de inicialização).

devido ao fato de que o banco de dados de recursos contém todo o código de objetos do sistema(ele não contém nenhum dado ou metadados do usuário), a atualização de versõesé executado simplesmente substituindo os arquivos de banco de dados de recursos na pasta instância’sbinn.

recuperando o banco de dados SQL Server mssqlsystemresource

depois de descobrir que os arquivos para o banco de dados mssqlsystemresource estavam ausentes, precisei saber por que isso aconteceu e como corrigir o problema. A primeira coisa que instintivamente fiz foi pesquisar na Internet sobre bancos de dados mssqlsystemresource desaparecendo e encontrei o seguinte artigo do Microsoft:correção: o banco de dados de recursos está faltando depois de instalar atualizações ou service packpara instâncias do SQL Server 2012 uma após a outra e, em seguida, reinicie o servidor.

estar ciente de que o Artigo da Microsoft afirmava que as versões afetadas são SQL Server 2012 e 2014, enquanto isso meu sistema era SQL Server 2017, mas pensei em seguir esse caminho para ver.

Para minha surpresa, eu vi thatthe dois seguintes atualizações foram agendadas para executar um após o outro:

  • Atualização de Segurança para o SQL Server 2017 RTM (KB4505224)
  • Actualização de Segurança para o SQL Server 2016 SP1 (KB4505219)
Atualização história mostra duas actualizações do SQL Server, um após o outro.

Agora que eu sabia a causa, eu precisava descobrir como restaurar o mssqlsystemresourcedatabase, pois é o meu computador de casa, eu não tinha backup. Itried baixar o pacote e instalá-lo manualmente, mas talvez porque o mssqlsystemresourcedatabase estava faltando, não funcionou; algo de uma situação de frango e ovo.

não era minha intenção reinstalar o SQL Server, então optei por uma abordagem mais heterodoxa. Abri a pasta temporária que o patch usa para descomprimir seus arquivos. Você pode anotar essa pasta depois de iniciar o programa de configuração, obtendo uma captura de tela como fiz a seguir.

 configuração extraindo arquivos de instalação.

depois de localizar o diretório temporário, procurei o caminho x64\setup\ e depois de procurar os arquivos, adivinhei que sql_engine_core_inst.mspmay tem uma cópia do banco de dados mssqlsystemresource. Este arquivo é compactado, entãopara abri-lo, você precisa de uma ferramenta de descompactação. Eu usei 7-Zip que é gratuito e você pode downloadfrom https://www.7-zip.org/.

na próxima captura de tela, você pode ver que existem dois arquivos, Eng_re_resourcedb_ldf_64e ENG_RE_ResourceDb_mdf_64. Estes são os arquivos do banco de dados themssqlsystemresource para a edição de 64 bits do SQL Server no Englishlanguage. Se você precisar de outrolinguagem, você tem que mudar o idioma na página de download do patch. Lembre-se de queO mecanismo de configuração contém todos os idiomas, mas os pacotes de implantação são emum idioma específico.

o arquivo compactado sql_engine_core_inst.o msp contém os arquivos do banco de dados de recursos.

extraí os dois arquivos e os renomeei da seguinte forma e copiei para a pasta mencionada acima na mensagem de erro em que esses arquivos devemexistem.

  • ENG_RE_ResourceDb_ldf_64 renomeado para mssqlsystemresource.ldf
  • ENG_RE_ResourceDb_mdf_64 renomeado para mssqlsystemresource.mdf

depois que esses arquivos foram renomeados e copiados para a pasta correta, eu estava ableto iniciar o SQL Server services e tudo funcionou novamente.

próximas etapas
  • caso você enfrente esta ou uma situação semelhante de precisar restaurar o resourcedatabase sem ter um backup, para poder extrair os arquivos mssqlsystemresourcedatabase de um pacote de configuração, você precisa saber a versão exata do SQL Serveryou está em execução. Se você não sabe como encontrá-lo, você pode ler esta dica queexplanta vários métodos para descobrir:como saber qual versão do SQL Server você está executando.
  • é uma boa prática fazer backups do banco de dados de recursos; se você quiser saber como fazê-lo, sugiro que você dê uma olhada nesta dica:backup do SQL Server e restauração do banco de dados de recursos.
  • Nesta Dica, mencionei que você precisa de “conexões de administrador dedicadas”para poder acessar o banco de dados de recursos. Você pode ler mais sobre DedicatedAdmin Connections na categoria de dicas de conexão de administrador dedicado do SQL Server e tomar thenext tip como ponto de partida:conexão de administrador dedicada no SQL Server.
  • além disso, mencionei que, se você deseja acessar o banco de dados de recursos,também precisa iniciar o SQL Server no modo de usuário único. Nesta dica você vai aprendercomo usar os parâmetros de inicialização que permitirão que você inicie sua instância emmodo de usuário único:definindo parâmetros de inicialização do SQL Server.
  • se o seu problema incluir um cenário de restauração do banco de dados mestre semtendo um backup, você pode dar uma olhada nesta dica:restaurando o banco de dados mestre do SQL Server mesmo sem um Backup.

Atualizada: 2019-10-25

obter scripts

dica seguinte botão

Sobre o autor
MSSQLTips autor Daniel FarinaDaniel Farina nasceu em Buenos Aires, Argentina. Autodidata, desde a infância, ele mostrou paixão pelo aprendizado.
ver todas as minhas dicas
recursos relacionados

  • mais dicas SQL Server DBA…

Deixe uma resposta Cancelar resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Artigos recentes

  • Sobre nós-Gandolfo Helin & Fountain Literary Management
  • 5 Coisas a Saber Sobre Shalane Flanagan
  • Rolling Stone
  • toxicidade da pele
  • Sergei Tcherepnin – Artadia
  • Como lidar com o estresse Social e pressão
  • qual raça de cavalo é a mais inteligente?
  • ácido Silício (Si(OH)4), é uma significativa influência sobre a absorção atômica sinal de alumínio medido pelo grafite fornalha atômica espectrometria de absorção (GFAAS)
  • explicando nossa inteligência Parte 8 – Auto Inteligente
  • Sarita T. M. Alexander (1898-1989)

Arquivo

  • Março 2022
  • Fevereiro 2022
  • Janeiro 2022
  • Dezembro 2021
  • Novembro 2021

Meta

  • Iniciar sessão
  • Feed de entradas
  • Feed de comentários
  • WordPress.org
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Copyright Calor Blog 2022 | Theme by ThemeinProgress | Proudly powered by WordPress