Não é possível restaurar backups de banco de dados do sistema para uma compilação diferente do SQL Server

Traduções deste artigo Traduções deste artigo
ID do artigo: 264474 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Você não pode restaurar um backup de um banco de sistema dados ( mestre , modelo ou msdb ) em uma compilação de servidor que seja diferente da compilação na qual o backup foi originalmente executado. Uma tentativa de executar uma restauração como causa a seguinte mensagem de erro ocorra:
Servidor: Mensagem 3168, nível 16, estado 1, linha 1
O backup do banco de dados sistema no dispositivo d:\temp\master.bak não pode ser restaurado porque ele foi criado por uma versão diferente do servidor (134217904) que este servidor (134217920).
Servidor: Mensagem 3013, nível 16, estado 1, linha 1
RESTORE DATABASE está finalizando de forma anormal.

Causa

É possível que o esquema de banco de dados para os bancos de dados do sistema alterou em compilações do servidor. Para garantir que essa alteração no esquema não faz com que todas as inconsistências, uma das primeiro verifica que executa o comando RESTORE é uma comparação entre o número de compilação do servidor no arquivo de backup e o número de compilação do servidor no qual o usuário está tentando executar a restauração. Se as duas versões forem diferentes, ocorre a mensagem de erro e a operação de restauração é encerrado de forma anormal.

Observação Instalar um service pack ou um hotfix criar alterações o número de compilação do servidor e servidor compilações são sempre incrementais.

Aqui estão alguns cenários em que esse problema pode ocorrer:
  • Um usuário tenta restaurar bancos de dados sistema no servidor de um backup feito no servidor servidores B. A e B estão em compilações de servidor diferente. Por exemplo, servidor pode estar em uma compilação RTM e servidor B pode estar em um service pack 1 (SP1) compilação.
  • Um usuário tenta restaurar um banco de dados do sistema de um backup feito no mesmo servidor. No entanto, o servidor foi executando uma compilação diferente quando ocorreu o backup. Ou seja, o servidor foi atualizado desde o backup foi executado.

Como Contornar

O processo de restauração em tal situação é bastante envolvido e usados somente como último recurso.

A primeira etapa na tentativa de solução alternativa para esse problema é para determinar a compilação atual do servidor e o SQL Server criar em que o backup foi executado.

Microsoft SQL Server 2000 e Microsoft SQL Server 2005 fornecem dois métodos a seguir para determinar a compilação atual do SQL Server:
  • método 1
    SELECT @@version
    esse código retorna texto semelhante ao:
    Microsoft SQL Server  2000 - 8.00.192 (Intel X86)
    Jul 31 2000 15:47:46
    Copyright (c) 1988-2000 Microsoft Corporation 
    Enterprise Edition on Windows NT 5.0 (Build 2195: )
    (1 row(s) affected)
  • método 2
    SELECT SERVERPROPERTY('ProductVersion')
    esse código retorna texto semelhante ao:
    8.00.192
    (1 row(s) affected)
O objetivo de neste artigo, esse número de compilação é referido como o "SQL Server compilação" no restante deste artigo.

Você pode determinar a compilação em que ocorreu o backup usando o seguinte comando no arquivo de backup:
RESTORE HEADERONLY
FROM DISK = 'd:\temp\master176.bak'
in a saída é gerada, as seguintes colunas três (3) fornecem informações de compilação de servidor:
SoftwareVersionMajor SoftwareVersionMinor SoftwareVersionBuild
-------------------- -------------------- --------------------
8                    0                    176

The actual output has several other columns; however, only the columns that are of interest are included in this article for clarity.
para a finalidade de neste artigo, esse número de compilação é referenciado como o "backup compilação" para o restante deste artigo.

No exemplo, o "SQL Server Build" é 8.00.192, enquanto o "backup compilação" estiver 8.00.176. Como as duas versões forem diferentes, a operação de restauração não é permitida e mensagem de erro 3168 ocorre.

O processo de restauração para contornar esse problema varia dependendo de qual sistema de banco de dados o usuário está tentando restaurar. Como medida de precaução, a Microsoft recomenda que você faça um backup dos bancos de todos os dados existentes (bancos de dados do sistema quanto do usuário) antes de prosseguir com qualquer uma dessas etapas.

Se a tentativa de restauração no banco de dados mestre , você pode usar as seguintes etapas para tentar uma restauração bem-sucedida:
  1. Desanexe todos os bancos de dados do usuário que existem no sistema usando o procedimento armazenado sp_detach_db . Para obter mais informações sobre desanexação de bancos de dados do usuário, consulte o tópico "Anexando e desanexando Databases" no Books Online do SQL Server 2000. Se você estiver usando o SQL Server 2005, consulte o "Detaching e anexar um banco de dados" tópico nos manuais online do SQL Server 2005. Como uma verificação cruzada, a seguinte consulta retorna uma lista de todos os bancos de dados de usuário no sistema:
    SELECT name FROM SYSDATABASES
    WHERE dbid > 4
  2. Fazer backup de bancos de dados msdb e modelo do sistema usando os seguintes comandos:
    BACKUP DATABASE MSDB TO DISK = '<backup device>' WITH NOINIT, NOSKIP
    BACKUP DATABASE MODEL TO DISK = '<backup device>' WITH NOINIT, NOSKIP
  3. Se o "backup compilação" for maior que o "SQL Server compilação", instalar todos os necessário service packs ou hotfix cria para distribuir o software do servidor frente para o "backup compilação" que foi determinado anteriormente. Em seguida, vá para a etapa 6.
  4. Remova o SQL Server 2000 ou SQL Server 2005. Para obter mais informações sobre como remover o SQL Server 2000, consulte o tópico "Como remover o SQL Server 2000" no Books Online do SQL Server 2000.
  5. Reinstale o SQL Server 2000 ou SQL Server 2005 e todos os pacotes de serviço necessária ou hotfix cria para distribuir o software do servidor frente para o "backup compilação" que foi determinado anteriormente.
  6. Inicie o servidor no modo de usuário único e restaurar o banco de dados mestre usando o arquivo de backup para esta compilação. Para obter instruções sobre como restaurar o banco de dados mestre , consulte o tópico "do banco de Restaurando o mestre de dados de um backup atual" nos manuais online do SQL Server 2000. Se você estiver usando o SQL Server 2005, consulte o tópico "Restaurando o banco de dados mestre" nos manuais online do SQL Server 2005.
  7. Depois de restaurar com êxito o banco de dados mestre , você deve desligar e reiniciar o serviço do SQL Server.
  8. Se o "backup compilação" for maior do que o "SQL Server compilação", vá para a etapa 10.
  9. Reaplicar quaisquer service packs ou hotfix cria necessários para implantar o software do servidor frente "compilação do SQL Server".
  10. Restaure os bancos de dados msdb e modelo dos backups criados na etapa 2. Se você estiver usando o SQL Server 2005, consulte o tópico "Restaurando os bancos de dados modelo e msdb" nos manuais online do SQL Server 2005.
  11. Reconecte todos os bancos de dados usuário usando o procedimento armazenado sp_attach_db . Para obter mais informações sobre como reanexar o banco de dados, consulte o tópico "Anexando e desanexando Databases" nos manuais online do SQL Server 2000.
Quaisquer alterações feitas no banco de dados mestre depois que o backup do mestre foi executado agora são perdidos e deve ser reaplicada manualmente.
Se você tentar a operação de restauração no modelo ou o banco de dados msdb , você pode usar as seguintes etapas para solucionar esse problema. Para ilustrar este procedimento com um exemplo, este artigo se refere ao servidor original no qual um desses bancos de dados, digamos que msdb , está a ser restaurado como servidor a. Este procedimento envolve a instalação do SQL Server em um servidor B diferentes para evitar a mensagem de erro 3168. A suposição é claro, que você tenha apenas um backup válido a partir de uma compilação mais antiga para o msdb no servidor a.
  1. Instale o SQL Server 2000 em servidor B (com as mesmas configurações agrupamento de servidor) e quaisquer service packs ou compilações do hotfix necessárias para obter o software de servidor para o "backup compilação".
  2. Depois que tiver sido instalado o SQL Server 2000, inicie o serviço SQL Server e tente restaurar o banco de dados msdb do arquivo de backup. A restauração funciona se o servidor de compilação e a compilação em que o backup foi executado são idênticos.
  3. Se o "backup compilação" for maior do que o "atual compilação", vá para a etapa 5.
  4. Após uma restauração bem-sucedida, atualização SQL Server 2000 no servidor B aplicando quaisquer service packs ou hotfix cria necessário para implantar o software do servidor frente a "atual compilação".
  5. Após a atualização ser concluída, execute um backup do banco de dados msdb . Agora você não conseguir restaurar a partir deste backup no servidor, considerando que a compilação do servidor no qual o backup foi executado e o "atual compilação" são idêntico.
O mesmo procedimento funciona para o banco de dados modelo bem. Novamente, quaisquer alterações que são feitas para esses bancos de dados desde o backup foi executado serão perdidas e devem ser reaplicadas manualmente.

Mais Informações

Ele é sempre uma boa prática para ter uma estratégia de backup atual e eficiente. Essa restrição ainda outro exemplo de por que uma boa estratégia de backup é importante. De sabendo essa restrição, você deve executar um backup de seus bancos de dados do sistema, assim que você atualiza o servidor quando você instala um service pack ou uma compilação de hotfix.

Propriedades

ID do artigo: 264474 - Última revisão: quinta-feira, 22 de fevereiro de 2007 - Revisão: 6.4
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Palavras-chave: 
kbmt kbbackup kbprb KB264474 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 264474

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com