none
Backup 2005 em 2000 RRS feed

  • Pergunta

  •  

    Pessoal.

     Tem como eu subir um bakcup gerado no SQL Server 2005, em um SQL Server 2000 ????

     

     Isso é possível?!

     

    Abs.

     

    Jean Alex

    quinta-feira, 13 de dezembro de 2007 17:18

Respostas

  • Jean,

     

    Um backup criado no SQL Server 2005 com nível de compatibilidade 90, não é possível restaurar sobre o SQL Server 2000.

     

    Agora se você tem um banco de dados no SQL Server 2005, com nível de compatiblidade 80, este é possível sim restaurar sobre uma base no SQL Server 2000.

     

    O que eu já fiz aqui na empresa, neste situação, foi o seguinte, em uma base criada no SQL Server 2005:

     

    1 - Alterei o nível de compatibilidade da base para 80.

     

    2 - Realizei o backup full desta base, criando um novo arquivo de backup.

     

    3 - Restaurei este arquivo de backup sobre a base SQL Server 2000.

     

    4 - Alterei novamente o nível de compatibilidade da base para 90.

     

    Mas gostaria de alertar que se você estiver utilizar recursos especificos do SQL Server 2005, e realizar alteração do nível de compatibilidade para 80(SQL Server 2000), este recursos vão parar de funcionar.

     

    Você já pensou em fazer migração somente dos dados e não de todo o banco de dados?

    quinta-feira, 13 de dezembro de 2007 19:04
    Moderador

Todas as Respostas

  • Jean,

     

    Um backup criado no SQL Server 2005 com nível de compatibilidade 90, não é possível restaurar sobre o SQL Server 2000.

     

    Agora se você tem um banco de dados no SQL Server 2005, com nível de compatiblidade 80, este é possível sim restaurar sobre uma base no SQL Server 2000.

     

    O que eu já fiz aqui na empresa, neste situação, foi o seguinte, em uma base criada no SQL Server 2005:

     

    1 - Alterei o nível de compatibilidade da base para 80.

     

    2 - Realizei o backup full desta base, criando um novo arquivo de backup.

     

    3 - Restaurei este arquivo de backup sobre a base SQL Server 2000.

     

    4 - Alterei novamente o nível de compatibilidade da base para 90.

     

    Mas gostaria de alertar que se você estiver utilizar recursos especificos do SQL Server 2005, e realizar alteração do nível de compatibilidade para 80(SQL Server 2000), este recursos vão parar de funcionar.

     

    Você já pensou em fazer migração somente dos dados e não de todo o banco de dados?

    quinta-feira, 13 de dezembro de 2007 19:04
    Moderador
  • Olá Jr,

     

    Até onde tinha lido e estudado, eu achava que era impossível restaurar um backup de uma versão superior em uma versão anterior. No meu conhecimento, o backup aprensa a versão do SQL no backup e impede que o mesmo seja restaurado. Para mim o nível de compatibilidade referia-se apenas a instruções TSQL e não a questões de armazenamento.

     

    O SQL Server 7 tem uma estrutura de armazenamento, enquanto o SQL Server 2000 e o 2005 tem outras. Embora todas muito parecidas, elas tem pequenas diferenças e melhoramentos e por isso um backup de uma edição superior não pode ser restaurado em uma edição anterior (embora o contrário seja verdadeiro).

     

    Quando vi sua recomendação, fiquei bastante curioso, pois, parece ser possível. No entanto segui exatamente os seus procedimentos com o banco AdventureWorks do 2005, mas não consegui restaurá-lo no SQL Server 2000. Gostaria de saber exatamente como você conseguiu fazer isso. Segue meu roteiro

     

    - Mudei o nível de compatibilidade do AdventureWorks para 80

    - Fiz um backup

    - Tentei visualizar as informações do backup (RESTORE FILE LISTONLY) e deu erro

    - Tentei restaurar o backup (RESTORE DATABASE) e deu erro

     

    Msg 3169, Level 16, State 1, Line 1

    The backed-up database has on-disk structure version 611. The server supports version 539 and cannot restore or upgrade this database.

    Msg 3013, Level 16, State 1, Line 1

    RESTORE DATABASE is terminating abnormally.

     

    Como você conseguiu fazer isso ? Normalmente eu exportaria todas as tabelas.

     

    [ ]s,

     

    Gustavo

    quinta-feira, 13 de dezembro de 2007 19:43
  • Jr..

     Obrigado

     Vou tentar aqui e posto depois o resultado...

     

     Novamente.. muito obrigado..

     

    Abs.

     

    Jean Alex.

     

    quinta-feira, 13 de dezembro de 2007 19:49
  • Gustavo,

     

    Realmente, eu já fiz isso algumas vezes em bancos de dados criado somente para teste, e tudo funcionou!!!

     

    Mas em particular como eu destaquei para o Jean, este tipo de procedimento não é recomendado, justamente por estar trabalhando com bancos de dados de versões diferentes.

     

    Prefiro somente fazer a migração dos dados, como você destacou fazer a exportação dos dados!!!

     

    Outra coisa que já testei também foi a restauração de log's, de bancos de dados do SQL Server 2005 no SQL Server 2000, e também funcionou, mas isso eu fiz já faz muito tempo!!!

    sexta-feira, 14 de dezembro de 2007 09:48
    Moderador
  • Oi Jr.,

     

    É muito estranho às vezes funcionar e às vezes não... Eu tinha pra mim que isso era totalmente impossível. O próprio Upgrade Tecnical Reference diz que não é possível restaurar backups do 2005 no 2000. Você poderia me postar o script de criação que você utilizou, que service packs estavam instalados, etc. Fiquei muito curioso...

     

    De qualquer forma como você mesmo disse não é recomendado. Vou continuar pelo método de exportar e usar esse como última alternativa.

     

    [ ]s,

     

    Gustavo

     

    sexta-feira, 14 de dezembro de 2007 16:15
  • Gustavo,

     

    Como eu mesmo destaquei, isso não é recomendado.

     

    Já faz muito tempo que realizei este procedimento, inclusive foi em uma versão CTP do SQL Server 2005, nunca mais fiz isso.

     

    Como também não utilizei nenhum script, fiz o processo normal de backup e restore.

    sexta-feira, 14 de dezembro de 2007 17:49
    Moderador
  • Pessoal, por experiência própria mesmo um banco em modo de compatibilidade em 80, quando restaurado no SQL Server 2005 ele não mais será possível o restore no 2000, pois no momento que entra no novo engine ele é modificado internamente para que os metadados sejam correspondidos para o SQL Server 2005 e não mais 2000.

     

    Podem tentar fazer esse tipo de restore, ele no mínimo vai dizer que não encontra uma tabela de sistema, exemplo clássico é a sysindexes.

     

    Abraços,

    terça-feira, 18 de dezembro de 2007 13:05
  • Rodrigo,

     

    Isso mesmo, como eu destaquei os testes que eu fiz, já faz muito tempo.

    terça-feira, 18 de dezembro de 2007 13:18
    Moderador
  • Oi Rodrigo,

     

    Esse é exatamente o meu entendimento. Me parece que o Jr. fez isso com um CTP.

    Mas como hoje só temos Releases Oficiais de 2005, o único procedimento seria realmente exportar as tabelas.

     

    Ainda não tivemos um retorno para saber se o problema foi resolvido, mas creio que o nível de compatibilidade não vai ser suficiente.

     

    [ ]s,

     

    Gustavo

     

    terça-feira, 18 de dezembro de 2007 13:36
  • Gustavo na realidade esse comportamento é esperado mesmo qdo você faz um detach e attach no servidor SQL Server 2005 a partir de um banco 2000 ou mesmo um restore.

     

    Isso foi discutido no SQL Summit 2007, e a sugestão que tenho pra quem vai fazer isso, é teste, teste, teste, rode o upgrade advisor, verifique seus códigos, tem um documento de 400 páginas dizendo como realizar o processo de migração de 2000 para 2005, se eu achar o link eu faço um post aqui.

     

    Abraços,

    quinta-feira, 27 de dezembro de 2007 20:19
  • Oi Rodrigo,

     

    Concordo com suas colocações. A única forma de ter certeza é testando de fato. O Upgrade Advisor e o Upgrade Technical Reference (o documento de 400 páginas que você se refere) são um ajuda valiosa, mas para o processo 2000 - 2005.

     

    O que estávamos questionando é o backup de um banco 2005 sendo restaurado no 2000. Mas como você mesmo disse, isso não será possível por uma questão de atualização de metadados. Acho que mesmo a solução sendo válida para uma versão de avaliação (CTP) como o Jr. disse que fez, devemos ter o cuidado de repassar apenas soluções testadas e que funcionem com as Releases oficiais.

     

    O documento que você mencionou (leitura obrigatória por sinal) pode ser obtido no link abaixo:

     

    http://www.microsoft.com/downloads/details.aspx?FamilyID=3d5e96d9-0074-46c4-bd4f-c3eb2abf4b66&DisplayLang=en

     

    [ ]s,

     

    Gustavo

     

     

    quinta-feira, 27 de dezembro de 2007 21:08
  • Pessoal,

     

    Apenas para reforçar, banco de dados migrado para SQL Server 2005...já era, nunca mais volta para SQL 2000 seja via backup ou detach\attach. E banco de dados criado nativamente no SQL Server 2005,pior ainda !!

     

    Notem que quando vc migra um base 2000 para 2005 ela muda o número da versão, vc consegue ver isso através da procedure sp_helpdb <nomedabase) e neste caso, no 2005 o número de versão sempre é superior à versão do SQL Server 2000. Como não é possível fazer um downgrade de versão...já era.

     

    A forma de voltar isso é apenas via DTS ou se preferir, criar um novo banco no SQL Server 2000, levar os scripts da base 2005 para a base 2000 e depois usar o utilitário bcp para fazer um export\import dos dados.

     

    um abraço

    Nilton Pinheiro

    www.mcdbabrasil.com.br

     

     

    segunda-feira, 31 de março de 2008 00:12