Como fazer rebuild do database master no SQL Server (sem backup)

AGRADEÇA AO AUTOR COMPARTILHE!

Fala pessoal,

Neste artigo vou demonstrar como reconstruir a base de dados interna master (fazer um rebuild no database) do SQL Server sem que se tenha um backup.

Cenário do problema

Enfrentei um problema onde o serviço do SQL Server de um ambiente não iniciava. Ao tentar iniciar o serviço no SQL Configuration Manager, um erro bem genérico era gerado. Ao investigar o Event View do Windows, percebi o seguinte erro:

Como reconstruir o database Master no SQL Server

Ainda verificando os logs, identifiquei:

Como fazer rebuild do database Master no SQL Server

Investigando melhor, notei que mesmo com as atualizações do Windows Update desativadas no servidor, por algum motivo que ainda estou verificando, o SQL Server acabou sendo atualizado pelo Windows Update e, no meio do procedimento, houve um erro ao tentar executar o script: ‘msdb110_upgrade.sql’ resultando na corrupção do database master.

Até ai um problema bem dos grandes, mas a primeira solução seria restaurar o banco de dados master dos meus backups e resolver o problema, correto?
É o velho ditado: Só jesus salva, DBA tem que ter Backup”

O problema é que eu não tinha nenhum backup! Não vou entrar em detalhes pelo motivo de não ter o backup, afinal, toda empresa tem suas particularidades.

E aí como faz? Ambiente indisponível, sem backup… Vamos às propostas de soluções para o rebuild do database Master no SQL Server

1. Tentar usar o repair (reparador de instalação) do próprio instalador do SQL Server, afim de tentar recuperar o banco de dados master. “Tentativa que não deu certo”.

2. Tentar usar o banco de dados master que é disponibilizado como template da instalação. Dica do nosso amigo #GustavoLarocca, consultor na power tuning. Em alguns cenários, esses templates podem salvar sua vida. No SQL Server 2019, ele se encontra nessa pasta abaixo. Em versões anteriores, o destino dessa pasta muda.

Como fazer rebuild do database Master no SQL Server

3. Reinstalar o SQL Server do zero, e Attach os .MDFs e LDFs. Proposta de solução que daria certo, entretanto, bastante demorada.

4. Por último, tentar realizar um tipo de manobra para tentar recuperar o banco de dados master sem ter que exercer o passo 3.

Por fim, consegui resolver com o passo 4, entretanto, existe alguns detalhes para este procedimento.

Observações importantes!

  • O procedimento a seguir apaga todos os dados originais registrados na base de dados master (linkedservers, usuários, etc).
  • Não depende de CU (cumulative update) para reconstrução.

Laboratório

Neste laboratório, propositalmente corrompi o database master para tentar simular o problema. Não consegui simular com o mesmo erro, porém, o cenário é bem parecido, ou seja, não consigo iniciar os meus serviços do SQL Server por motivos que envolve o banco de dados interno master – e não tenho backup. Apenas lembrando que a versão no qual ocorreu este cenário foi o SQL Server 2019.

rebuild-master-sql-server-4

Como pré-requisito, você irá precisar da mídia de instalação da sua versão montada no sistema operacional. No meu caso, SQL Server 2019 Developer.

rebuild-master-sql-server-5

Com o SQL Server parado, vamos executar os seguintes passos:

1. Monte a mídia de instalação na versão do SQL Server que já está instalado.

2. Após montado, navegue pelo cmd em modo administrador até a unidade montada.

rebuild-master-sql-server-6

Chegando ao diretório da imagem acima, execute o seguinte comando abaixo:

Parâmetros:

  • ACTION: Ação a ser executada.
  • INSTANCENAME: Nome da instancia que já existia.
  • SQLSYSADMINACOUNT: Importante observar que se o computador estiver em um domínio, mesmo que local, o usuário novo necessita ser dentro deste domínio.
  • SAPWD: Nova senha para o usuário definido.
  • SQLCOLLATION: COLLATION padrão do SQL Server.

Comando para Rebuild do database Master no SQL Server

3. Após o comando ter sido executado, inicie o serviço do SQL Server normalmente.

rebuild-master-sql-server-8

4. Logue no SQL Server:

Processo de Rebuild da base de dados Master no SQL Server

rebuild-master-sql-server-10

Desvantagens deste processo de rebuild

  • O banco de dados master é recuperado, entretanto, é necessário attachar os MDF’s e LDF’s;
  • Os usuários necessitam ser reconfigurados após o procedimento.

Vantagens deste processo de rebuild

  • Não é necessário reinstalar o SQL Server;
  • O trabalho de recuperação do ambiente é mais rápido.

Na parte 2 do artigo, irei mostrar o processo de restaurar a base de dados master e alguns assuntos correlacionados sobre a importância das sysmtemdatabases.

Caso tenha dúvidas sobre este processo de rebuild da base de dados Master no SQL Server, deixe seu comentário abaixo.

Referência

AGRADEÇA AO AUTOR COMPARTILHE!

Felipe Portela

Mais artigos deste autor »

26 anos, Profissional de banco de dados.
Hobby por vídeo-games e futebol.

felipeportela.com.br
MCSA| MCP | Azure Fundamentals


Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">