Por que eu devo ler este artigo: O banco de dados master possui informações específicas de sistema comuns a todos os bancos de dados, por exemplo, logins de servidor. Se você perder seu banco de dados master, provavelmente não conseguirá iniciar o SQL Server.

Este artigo aborda o processo de recriação do banco de dados master e, depois, sua recuperação através de backup. Adicionalmente, veremos outras áreas críticas que são muitas vezes negligenciadas em uma recuperação, a saber: logins e contas de usuários que ficam fora de sincronização. Analisaremos também duas ferramentas que nos auxiliarão a corrigir alguns problemas comuns. Por fim, abordaremos alguns outros problemas comuns que você pode encontrar ao recriar o banco de dados master e como solucioná-los.

Recriando e recuperando o banco de dados master

O banco de dados master é especial. Quando o banco de dados master sofre algum dano, é bastante provável que o SQL Server não funcione. Nesta seção, recriaremos o banco de dados master e, depois, o restauraremos. Lembre-se de que ao recriar o master você perderá todas as informações e dados. Portanto, verifique se os bancos de dados possuem backup. Se os arquivos do banco de dados ainda existirem e forem recuperáveis, você poderá reconectar os bancos de dados utilizando o SQL EM ou a stored procedure sp_attach_db. A seguir, examinaremos uma situação de recuperação típica.

Cenário

Nosso sistema sofreu um pico de tensão e perdemos uma unidade de disco. Quando tentamos iniciar o backup do SQL Server, descobrimos que ele não estava iniciando e examinamos o errorlog (ver Listagem 1). O local padrão onde o errorlog pode ser encontrado é o diretório (. . .\LOG).

Listagem 1. Informações do errorlog
 
2001-04-28 14:53:18.45 serverMicrosoft SQL Server 2000 - 8.00.194 (Intel X86)

Aug 6 2000 00:57:48

Copyright (c) 1988-2000 Microsoft Corporation

Enterprise Edition on Windows NT 5.0 (Build 2195: )

2001-04-28 14:53:18.50 server     Copyright (C) 1988-2000 Microsoft Corporation.

2001-04-28 14:53:18.50 server     All rights reserved.

2001-04-28 14:53:18.50 server     Server Process ID is 1364.

2001-04-28 14:53:18.50 server     Logging SQL Server messages in file

    'C:\Program Files\Microsoft SQL Server\MSSQL\log\ERRORLOG'.

2001-04-28 14:53:180,53 server   initconfig: Error 2(The system cannot

    find the file specified.) opening 'C:\Program Files\Microsoft

    SQL Server\MSSQL\data\master. mdf' for configuration information.
            

Podemos perceber que perdemos o arquivo de dados do banco de dados master. Para iniciar a restauração do sistema, utilize a ferramenta rebuildm localizada no diretório ...\tools\binn (C:...\tools\binn>rebuildm.exe) para recriar o banco de dados master.

Ao executar a ferramenta rebuildm, a tela mostrada na Figura 1 é exibida. Serão solicitadas informações como o local dos arquivos de dados (os arquivos de dados originais que acompanham o CD), que estão localizados no diretório ...\x86\data no CD. Recomendamos que você copie os arquivos para um disco rígido local antes de tentar executar a recriação.

A Figura 1 mostra a tela splash da ferramenta Rebuild Master. Digite o nome do servidor e o local dos arquivos de dados master.mdf e master.ldf.

Tela inicial da recriação do master
Figura 1. Tela inicial da recriação do master

Depois de fornecer o local, o SQL Server confirmará que queremos recriar o master e substituir as informações do sistema armazenadas no banco de dados do sistema. O SQL Server, em seguida, começará a copiar os arquivos de dados. Após a cópia dos arquivos, o SQL Server se configurará para que o novo master seja reconhecido. Neste momento, temos um SQL Server limpo, mas que não reconhece a existência de outros bancos de dados. Agora é a hora de restaurar o backup do master de nosso último backup bem sucedido. Ele conterá os locais dos outros bancos de dados do servidor, logins do SQL Server etc.

Restaurando o banco de dados master

Para restaurar o banco de dados master, você precisará executar as seguintes etapas:

  1. Adicione o dispositivo de backup:
     
    sp_addumpdevice 'disk', 'master_backup',
    
    'c:\tmp\sql_backup\master_backup.dmp'
    
    go
                        
    ...

    Quer ler esse conteúdo completo? Tenha acesso completo