Não pode restaurar cópias de segurança do sistema de base de dados para uma versão diferente do SQL Server

Traduções de Artigos Traduções de Artigos
Artigo: 264474 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Sintomas

Não é possível restaurar uma cópia de segurança da base de um sistema de dados ( principal , modelo e msdb ) numa compilação de servidor é diferente da compilação no qual a cópia de segurança foi executada originalmente. Uma tentativa para executar um restauro tal faz com que a seguinte mensagem de erro ocorrer:
Servidor: Erro 3168, nível de 16, estado 1, linha 1
A cópia de segurança da base de dados sistema no dispositivo d:\temp\master.bak não pode ser restaurada porque foi criada por uma versão diferente do servidor (134217904) que este servidor (134217920).
Servidor: Erro 3013, nível de 16, estado 1, linha 1
RESTORE DATABASE está a terminar irregularmente.

Causa

É possível que o esquema de base de dados para bases de dados de sistema alterado em versões de servidor. Para garantir que esta alteração no esquema não provoque quaisquer inconsistências, um dos cheques primeiro que executa o comando de RESTAURO é uma comparação entre o número de compilação do servidor no ficheiro de cópia de segurança e o número de compilação do servidor no qual o utilizador está a tentar efectuar o restauro. Se a duas versões são diferentes, a mensagem de erro e a operação de restauro terminado anormalmente.

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

Seguem-se alguns cenários em que este problema pode ocorrer:
  • Um utilizador tenta restaurar uma base de dados sistema num servidor a partir de uma cópia de segurança efectuada no servidor servidores B. A e B estão em compilações de servidor diferente. Por exemplo, servidor pode estar activa uma compilação RTM e servidor B poderá estar num service pack 1 (SP1) compilação.
  • Um utilizador tenta restaurar uma base de dados sistema a partir de uma cópia de segurança efectuada no mesmo servidor. No entanto, o servidor estava em execução uma compilação diferente quando a cópia de segurança ocorreu. Ou seja, o servidor foi actualizado desde que foi efectuada a cópia de segurança.

Como contornar

O processo de restauro tal situação é bastante envolvidos e utilizados apenas como último recurso.

O primeiro passo tentar contornar este problema é determinar a versão actual do servidor e o SQL Server criar no qual foi efectuada a cópia de segurança.

Microsoft SQL Server 2000 e Microsoft SQL Server 2005 fornecem os seguintes dois métodos para determinar a compilação actual do SQL Server:
  • método 1
    SELECT @@version
    este código retorna um 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')
    este código retorna um texto semelhante ao:
    8.00.192
    (1 row(s) affected)
Com o objectivo de neste artigo, este número de compilação é referido como o "SQL Server criar" na restante deste artigo.

Pode determinar a compilação no qual ocorreu a cópia de segurança utilizando o comando seguinte no ficheiro de cópia de segurança:
RESTORE HEADERONLY
FROM DISK = 'd:\temp\master176.bak'
no resultado gerado, as seguintes colunas tridimensional (3) fornecem as informações de compilação 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 fins de neste artigo, este número de compilação é referido como o "cópia de segurança Build" para o resto deste artigo.

No exemplo, o "SQL Server Build" é 8.00.192, enquanto que o "cópia de segurança Build" é 8.00.176. Uma vez que a duas versões são diferentes, a operação de restauro não é permitida e mensagem de erro 3168 ocorre.

O processo de restauro para contornar este problema varia dependendo do que sistema base de dados do utilizador está a tentar restaurar. Como medida de precaução, a Microsoft recomenda que efectuar uma cópia de segurança das bases de todos os dados existentes (bases de dados de sistema e utilizador) antes de continuar com qualquer um destes passos.

Se a tentativa de restauro estiver numa base de dados principal , pode utilizar os seguintes passos para tentar um restauro com êxito:
  1. Desligar utilizador bases existentes no sistema utilizando o procedimento sp_detach_db armazenados. Para mais informações sobre como desligar bases de dados de utilizador, consulte o tópico de "bases de anexar e desligar dados" no SQL Server 2000 Books Online. Se estiver a utilizar o SQL Server 2005, consulte o "Detaching e anexar uma base de dados" tópico no SQL Server 2005 Books Online. Como verificação de validade múltipla, a consulta seguinte devolve uma lista de todas as bases de dados utilizador no sistema:
    SELECT name FROM SYSDATABASES
    WHERE dbid > 4
  2. Cópia de segurança bases de dados msdb e modelo do sistema utilizando 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 a "cópia de segurança Build" for maior que o "SQL Server compilação", instale todos os necessário service packs ou correcção cria para repor o software de servidor para a frente a "cópia de segurança Build" que foi determinado anteriormente. Em seguida, avance para o passo 6.
  4. Remova o SQL Server 2000 ou SQL Server 2005. Para mais informações sobre como remover o SQL Server 2000, consulte o tópico "Como remover o SQL Server 2000" no SQL Server 2000 Books Online.
  5. Reinstalar o SQL Server 2000 ou SQL Server 2005 e todas as necessário service packs ou correcções cria para repor o software de servidor para a frente a "cópia de segurança Build" que foi determinado anteriormente.
  6. Inicie o servidor no modo de utilizador único e restaurar a base de dados principal utilizando o ficheiro de cópia de segurança para esta compilação. Para obter instruções sobre como restaurar a base de dados principal , consulte o tópico "da base de restaurar o mestre de dados a partir de uma cópia de segurança actual" no SQL Server 2000 Books Online. Se estiver a utilizar o SQL Server 2005, consulte o tópico "Restaurar a base de dados principal" no SQL Server 2005 Books Online.
  7. Depois de restaurar a base de dados principal com êxito, encerre e reinicie o serviço SQL Server.
  8. Se a "cópia de segurança Build" for maior do que o "SQL Server compilação", avance para o passo 10.
  9. Voltar a aplicar quaisquer service packs ou correcções cria necessário para repor o software de servidor para a frente "compilação do SQL Server".
  10. Restaure as bases de dados modelo e msdb a partir das cópias de segurança criadas no passo 2. Se estiver a utilizar o SQL Server 2005, consulte o tópico "Restaurar as bases de dados modelo e msdb" no SQL Server 2005 Books Online.
  11. Volte a ligar todas as bases de dados utilizador utilizando o procedimento armazenado sp_attach_db . Para obter mais informações sobre como voltar a ligar a base de dados, consulte o tópico de "bases de anexar e desligar dados" no SQL Server 2000 Books Online.
Quaisquer alterações efectuadas à base de dados principal depois de efectuada a cópia de segurança do principal agora são perdidas e devem ser reaplicadas manualmente.
Se tentar a operação de restauro no modelo ou a base de dados msdb , pode utilizar os seguintes passos para contornar este problema. Para ilustrar este procedimento com um exemplo, este artigo refere-se para o servidor original no qual uma destas bases de dados, diga msdb , está a ser restaurado como servidor a. Este procedimento envolve a instalar o SQL Server num servidor B diferente para evitar a mensagem de erro 3168. O pressuposto claro, é que só tem uma cópia de segurança válida a partir de uma versão mais antiga para msdb no servidor a.
  1. Instale o SQL Server 2000 no servidor B (com as mesmas definições agrupamento que o servidor A) e quaisquer service packs ou versões de correcção necessários para obter o software de servidor para o "cópia de segurança Build".
  2. Depois da instalação do SQL Server 2000, inicie o serviço SQL Server e tentar restaurar a base de dados msdb do ficheiro de cópia de segurança. O restauro funciona se o servidor de compilação e a compilação no qual foi efectuada a cópia de segurança são idênticos.
  3. Se a "cópia de segurança Build" for maior do que o "actual compilação", avance para o passo 5.
  4. Depois de restaurar com êxito, actualização SQL Server 2000 no servidor B aplicando quaisquer service packs ou correcções cria necessário repor o software de servidor para a frente a "actual Build".
  5. Depois de concluída a actualização, efectue uma cópia de segurança da base de dados msdb . Agora é possível restaurar a partir desta cópia de segurança no servidor, considering que a compilação do servidor no qual foi efectuada a cópia de segurança e o "actual Build" são idêntico.
O mesmo procedimento funciona para a base de modelo de dados bem. Novamente, quaisquer alterações efectuadas a estas bases de dados desde que foi efectuada a cópia de segurança serão perdidas e devem ser reaplicadas manualmente.

Mais Informação

É sempre uma boa prática efectuar uma estratégia de cópia de segurança actual e eficaz. Esta restrição ainda está outro exemplo dos motivos pelos quais uma boa estratégia de cópia de segurança é importante. A luz desta restrição, terá de efectuar uma cópia de segurança das bases de dados sistema assim actualizar o servidor quando instala um service pack ou uma versão de correcção.

Propriedades

Artigo: 264474 - Última revisão: 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 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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