Recriar bancos de dados do sistema

Os bancos de dados do sistema devem ser recriados para corrigir problemas de corrupção nos bancos de dados do sistema master, model, msdb ou resource, ou para modificar o agrupamento em nível de servidor padrão. Este tópico fornece instruções passo a passo para recriar bancos de dados do sistema no SQL Server 2012.

Neste tópico

  • Antes de começar:

    Limitações e restrições

    Pré-requisitos

  • Procedimentos:  

    Recriar bancos de dados do sistema

    Recriar o banco de dados de recursos

    Criar um novo banco de dados msdb

  • Acompanhamento:  

    Solução de problemas de erros de recriação

Antes de começar

Limitações e restrições

Quando os bancos de dados do sistema master, model, msdb e tempdb são recriados, os bancos de dados são removidos e recriados em seu local original. Se um agrupamento novo for especificado na instrução REBUILD, os bancos de dados do sistema serão criados usando essa configuração de agrupamento. Todas as modificações do usuário nesses bancos de dados são perdidas. Por exemplo, você pode ter objetos definidos pelo usuário no banco de dados master, trabalhos agendados em msdb ou alterações das configurações do banco de dados padrão no banco de dados model.

Ícone de seta usado com o link Voltar ao Início[Início]

Pré-requisitos

Execute as tarefas a seguir antes de recriar os bancos de dados do sistema para garantir que os bancos de dados possam ser restaurados para suas configurações atuais.

  1. Registre todos os valores de configuração em todo o servidor.

    SELECT * FROM sys.configurations;
    
  2. Registre todos os pacotes de serviço e os hotfixes aplicados à instância do SQL Server e ao agrupamento atual. Você deve reaplicar essas atualizações depois de recriar os bancos de dados do sistema.

    SELECT
    SERVERPROPERTY('ProductVersion ') AS ProductVersion,
    SERVERPROPERTY('ProductLevel') AS ProductLevel,
    SERVERPROPERTY('ResourceVersion') AS ResourceVersion,
    SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime,
    SERVERPROPERTY('Collation') AS Collation;
    
  3. Registre o local atual de todos os arquivos de log e de dados nos bancos de dados do sistema. A recriação do bancos de dados do sistema instala todos os bancos de dados do sistema em seu local original. Se você tiver movido os arquivos de log ou de dados do banco de dados do sistema para um local diferente, mova os arquivos novamente.

    SELECT name, physical_name AS current_file_location
    FROM sys.master_files
    WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb'));
    
  4. Localize o backup atual dos bancos de dados master, model e msdb.

  5. Se a instância do SQL Server estiver configurada como um Distribuidor de replicação, localize o backup atual do banco de dados de distribuição.

  6. Verifique se você possui as permissões adequadas para recriar os bancos de dados do sistema. Para executar essa operação, você deve ser membro da função de servidor fixa sysadmin. Para obter mais informações, consulte Funções de nível de servidor.

  7. Verifique se existem cópias dos arquivos de modelo de dados e de log do master, model e msdb no servidor local. O local padrão dos arquivos de modelo é C:\Arquivos de Programas\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\Templates. Esses arquivos são usados durante o processo de recriação e devem estar presentes para que a Instalação tenha êxito. Se eles estiverem ausentes, execute o recurso de Instalação Reparar ou copie os arquivos manualmente da mídia de instalação. Para localizar os arquivos na mídia de instalação, navegue até o diretório da plataforma adequada (x86 ou x64) e, em seguida, navegue até setup\sql_engine_core_inst_msi\Pfiles\SqlServr\MSSQL.X\MSSQL\Binn\Templates.

Ícone de seta usado com o link Voltar ao Início[Início]

Recriar bancos de dados do sistema

O procedimento a seguir recria os bancos de dados do sistema master, model, msdb e tempdb. Você não pode especificar os bancos de dados do sistema que devem ser recriados. Para instâncias clusterizadas, esse procedimento deve ser executado no nó ativo, e o recurso do SQL Server no grupo de aplicativos de cluster correspondente deve estar offline antes da execução do procedimento.

Esse procedimento não recria o banco de dados resource. Consulte a seção, "Procedimento de recriação do banco de dados de recursos" posteriormente neste tópico.

Para recriar os bancos de dados do sistema para uma instância do SQL Server:

  1. Insira a mídia de instalação do SQL Server 2012 na unidade de disco ou, em um prompt de comando, altere o diretório para o local do arquivo setup.exe no servidor local. O local padrão no servidor é C:\Arquivos de Programas\Microsoft SQL Server\110\Setup Bootstrap\Release.

  2. Em uma janela de prompt de comando, digite o comando a seguir: São usados colchetes para indicar parâmetros opcionais. Não digite os colchetes. Ao usar o sistema operacional Windows Vista com UAC (Controle de Conta de Usuário) habilitado, a execução da Instalação exige privilégios elevados. O prompt de comando deve ser executado como Administrador.

    Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts [ /SAPWD= StrongPassword ] [ /SQLCOLLATION=CollationName]

    Nome do parâmetro

    Descrição

    /QUIET ou /Q

    Especifica que a Instalação é executada sem nenhuma interface do usuário.

    /ACTION=REBUILDDATABASE

    Especifica que Instalação recria os bancos de dados do sistema.

    /INSTANCENAME=InstanceName

    É o nome da instância do SQL Server. Para a instância padrão, digite MSSQLSERVER.

    /SQLSYSADMINACCOUNTS=accounts

    Especifica os grupos ou contas individuais do Windows a serem adicionados à função de servidor fixa sysadmin. Ao especificar mais de uma conta, separe as contas com um espaço em branco. Por exemplo, digite BUILTIN\Administrators MyDomain\MyUser. Quando você estiver especificando uma conta que contém um espaço em branco dentro do nome de conta, coloque a conta entre aspas duplas. Por exemplo, digite NT AUTHORITY\SYSTEM.

    [ /SAPWD=StrongPassword ]

    Especifica a senha da conta SQL Server sa. Esse parâmetro será exigido, se a instância usar o modo de Autenticação Mista (Autenticação do SQL Server e do Windows).

    Observação sobre segurançaObservação sobre segurança

    A conta sa é uma conta bem conhecida do SQL Server e geralmente é visada por usuários mal-intencionados. É muito importante que você use uma senha forte para o logon sa.

    Não especifique esse parâmetro para o modo de Autenticação do Windows.

    [ /SQLCOLLATION=CollationName ]

    Especifica um novo agrupamento no nível do servidor. Esse parâmetro é opcional. Quando não está especificado, o agrupamento atual do servidor é usado.

    Observação importanteImportante

    A alteração do agrupamento no nível do servidor não altera o agrupamento dos bancos de dados de usuário existentes. Por padrão, todos os bancos de dados do usuário criados recentemente usarão o novo agrupamento.

    Para obter mais informações, consulte Definir ou alterar o agrupamento do servidor.

  3. Quando a Instalação tiver concluído a recriação dos bancos de dados do sistema, ela retornará ao prompt de comando sem mensagens. Examine o arquivo de log Summary.txt para verificar se o processo foi concluído com êxito. Esse arquivo está localizado em C:\Arquivos de Programas\Microsoft SQL Server\110\Setup Bootstrap\Logs.

Tarefas pós-recriação

Depois de recriar o banco de dados, talvez seja necessário executar as tarefas adicionais a seguir:

  • Restaure os backups completos mais recentes dos bancos de dados master, model e msdb. Para obter mais informações, consulte Fazer backup e restaurar bancos de dados do sistema (SQL Server).

    Observação importanteImportante

    Se você alterou o agrupamento do servidor, não restaure os bancos de dados do sistema. Fazer isso substituirá o novo agrupamento pela configuração do agrupamento anterior.

    Se um backup não estiver disponível ou se o backup restaurado não for atual, recrie todas as entradas ausentes. Por exemplo, recrie todas as entradas ausentes de seus bancos de dados de usuários, dispositivos de backup, logons, pontos de extremidade, etc. do SQL Server. A melhor maneira de recriar entradas é executar os scripts originais que as criaram.

Observação sobre segurançaObservação sobre segurança

É recomendável proteger os scripts para evitar que eles sejam alterados por indivíduos não autorizados.

  • Se a instância do SQL Server estiver configurada como um Distribuidor de replicação, você deverá restaurar o banco de dados de distribuição. Para obter mais informações, consulte Fazer backup e restaurar bancos de dados replicados.

  • Mova os bancos de dados do sistema para os locais que você registrou anteriormente. Para obter mais informações, consulte Mover bancos de dados do sistema.

  • Verifique se os valores da configuração de todo o servidor correspondem aos valores registrados anteriormente.

Ícone de seta usado com o link Voltar ao Início[Início]

Recriar o banco de dados de recursos

O procedimento a seguir recria o banco de dados do sistema resource. Ao recriar o banco de dados resource, todos os service packs e hotfixes são perdidos e, portanto, devem ser reaplicados.

Para recriar o banco de dados do sistema de recursos:

  1. Inicie o programa de Instalação do SQL Server 2012 (setup.exe) da mídia de distribuição.

  2. Na área de navegação à esquerda, clique em Manutenção e em Reparar.

  3. A regra de suporte à Instalação e as rotinas de arquivos são executadas para garantir que o sistema tenha os pré-requisitos instalados e que o computador aprove as regras de validação da Instalação. Clique em OK ou em Instalar para continuar.

  4. Na página Selecionar Instância, selecione a instância a ser reparada e, em seguida, clique em Avançar.

  5. As regras de reparo são executadas para validar a operação. Para continuar, clique em Avançar.

  6. Na página Pronto para Reparar, clique em Reparar. A página Concluído indica que a operação foi concluída.

Ícone de seta usado com o link Voltar ao Início[Início]

Criar um novo banco de dados msdb

Se o banco de dados msdb estiver danificado e você não tiver um backup do banco de dados msdb, poderá criar um novo msdb usando o script instmsdb.

Observação sobre cuidadosCuidado

A recriação do banco de dados msdb usando o script instmsdb eliminará todas as informações armazenadas em msdb, tais como trabalhos, alerta, operadores, planos de manutenção, histórico de backup, configurações de Gerenciamento Baseado em Políticas, Database Mail, Data Warehouse de desempenho etc.

  1. Pare todos os serviços que estejam se conectando ao Mecanismo de Banco de Dados, inclusive o SQL Server Agent, SSRS, SSIS, e todos os aplicativos que estejam usando o SQL Server como um repositório de dados.

  2. Inicie o SQL Server a partir da linha de comando usando o comando: NET START MSSQLSERVER /T3608

    Para obter mais informações, consulte Iniciar, parar, pausar, retomar, reiniciar o mecanismo de banco de dados, o SQL Server Agent ou o serviço SQL Server Browser.

  3. Em outra janela da linha de comando, desanexe o banco de dados msdb, executando o comando a seguir, substituindo <servername> pela instância do SQL Server: SQLCMD -E -S<servername> -dmaster -Q"EXEC sp_detach_db msdb"

  4. Usando o Windows Explorer, renomeie os arquivos de banco de dados msdb. Por padrão, eles estão na subpasta DATA da instância do SQL Server.

  5. Usando o SQL Server Configuration Manager, pare e reinicie o serviço Mecanismo de Banco de Dados normalmente.

  6. Em uma janela de linha de comando, conecte o SQL Server e execute o comando: SQLCMD -E -S<servername> -i"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Install\instmsdb.sql" -o" C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Install\instmsdb.out"

    Substitua <servername> pela instância do Mecanismo de Banco de Dados. Use o caminho do sistema de arquivo da instância do SQL Server.

  7. Usando o Bloco de Notas do Windows, abra o arquivo instmsdb.out e verifique se há erros na saída.

  8. Aplique novamente pacotes de serviços ou o hotfix instalado na instância.

  9. Recrie o conteúdo de usuário armazenado no banco de dados msdb, como, por exemplo, trabalhos, alerta etc.

  10. Faça um backup do banco de dados msdb.

Ícone de seta usado com o link Voltar ao Início[Início]

Solução de problemas de erros de recriação

Erros de sintaxe e outros erros de tempo de execução são exibidos na janela do prompt de comando. Examine os erros de sintaxe a seguir na instrução da Instalação:

  • Marca de barra (/) ausente na frente de cada nome de parâmetro.

  • Sinal de igualdade (=) ausente entre o nome do parâmetro e o valor do parâmetro.

  • Presença de espaços em branco entre o nome do parâmetro e o sinal de igual.

  • Presença de vírgulas (,) ou outros caracteres que não são especificados na sintaxe.

Depois que a operação de recriação é concluída, examine se há erros nos logs do SQL Server. O local do log padrão é C:\Arquivos de Programas\Microsoft SQL Server\110\Setup Bootstrap\Logs. Para localizar o arquivo de log que contém os resultados do processo de recriação, altere os diretórios para a pasta Logs em um prompt de comando e execute findstr /s RebuildDatabase summary*.*. Essa pesquisa apontará para qualquer arquivo de log que contenha os resultados da recriação dos bancos de dados do sistema. Abra os arquivos de log e examine-os para verificar se há mensagens de erro relevantes.

Ícone de seta usado com o link Voltar ao Início[Início]

Consulte também

Conceitos

Bancos de dados do sistema