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

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:

Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=DESKTOP-L0NAOVQ\felip /SAPWD=123 /SQLCOLLATION=SQL_Latin1_General_CP1_CI_AI 

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

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!