none
Alterar config dos datafiles durante uma migração RRS feed

  • Pergunta

  • Bom dia pessoal;

    Esteri efetuando uma migração de banco do 2000 para o 2005 hoje a noite.
    Meu banco possui 1 datafile apenas com 14Gb, estou pensando em dividir em datafiles de 2gb cada.

    A migração será feita usando backup / recovery.

    Eu poderia dar um (backup database blabla to disk caminho\blabla.bak) apenas ou preciso de algum comando em especial para no momento do recovery conseguir dividir o datafile?
    sexta-feira, 6 de março de 2009 12:49

Respostas

  • Boa Noite,

    Você pode adicionar um novo arquivo de 7GB e depois realizar um SHRINK no primeiro arquivo para que ele diminua de 14GB para 7GB. Ex:

    USE MASTER  
    GO  
    ALTER DATABASE Banco ADD FILE (NAME='ArquivoLogico', FILENAME='C:\ArquivoFisico.MDF')  
    GO  
    USE Banco  
    GO  
    DBCC SHRINKFILE(1,7168)  
    GO 


    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Faça um avalicação inicial dos seus conhecimentos em SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!399.entry
    Classifique as respostas. O seu feedback é imprescindível
    sábado, 7 de março de 2009 06:33
  • Ricardo,

    Devo concordar com o Gustavo, se partimos do principio que cada banco de dados é formado por um conjunto de arquivos, se você deseja dividir os arquivos de dados para realizar a migração, você concorda que não temos como identificar em qual arquivos estamos realizando a leitura do dado.

    Com isso fica a recomendação de realizar um backup completo do seu banco de dados, restaurar no novo local e depois disso adicionar o novo arquivo como o Gustavo destacou e por fim realizar o DBCC ShrinkFile para realizar a diminuição lógica e física do seu banco de dados como também do arquivo de dados.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    sábado, 7 de março de 2009 22:36
    Moderador

Todas as Respostas

  • Boa Noite,

    É sempre uma boa prática tentar não misturar tarefas administrativas com tarefas de migração (a menos que seja realmente necessário). Se você adiciona mais tarefas, o downtime e o risco aumentam.

    Não é possível dividir arquivos durante a restauração. Você terá que fazê-lo antes de gerar o backup ou após a restauração.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Faça um avalicação inicial dos seus conhecimentos em SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!399.entry


    Classifique as respostas. O seu feedback é imprescindível
    sexta-feira, 6 de março de 2009 19:56
  • Ok,

    Seria possível dividir um datafile?
    Por exemplo, meu datafile possui hoje 14GB, seria possível dividir esse datafile em 7 datafiles de 2 GB ?
    sexta-feira, 6 de março de 2009 22:05
  • Boa Noite,

    Você pode adicionar um novo arquivo de 7GB e depois realizar um SHRINK no primeiro arquivo para que ele diminua de 14GB para 7GB. Ex:

    USE MASTER  
    GO  
    ALTER DATABASE Banco ADD FILE (NAME='ArquivoLogico', FILENAME='C:\ArquivoFisico.MDF')  
    GO  
    USE Banco  
    GO  
    DBCC SHRINKFILE(1,7168)  
    GO 


    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Faça um avalicação inicial dos seus conhecimentos em SQL Server
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!399.entry
    Classifique as respostas. O seu feedback é imprescindível
    sábado, 7 de março de 2009 06:33
  • Ricardo,

    Devo concordar com o Gustavo, se partimos do principio que cada banco de dados é formado por um conjunto de arquivos, se você deseja dividir os arquivos de dados para realizar a migração, você concorda que não temos como identificar em qual arquivos estamos realizando a leitura do dado.

    Com isso fica a recomendação de realizar um backup completo do seu banco de dados, restaurar no novo local e depois disso adicionar o novo arquivo como o Gustavo destacou e por fim realizar o DBCC ShrinkFile para realizar a diminuição lógica e física do seu banco de dados como também do arquivo de dados.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    sábado, 7 de março de 2009 22:36
    Moderador
  • Boa tarde Maia,

    Fiz o teste que você falou.

    Criei um banco em um servidor de testes com uns 500Mb em um único datafile.
    Depois adicionei um datafile a este banco e usei o comando

    DBCC

    SHRINKFILE (1, 390);

    o retorno foi isso:
    DBId           Field        CurrentSize    MinimumSize     UsedPages     EstimatedPages
    7               1             64216           384                 64200           64200

    O arquivo não foi reduzido de tamanho, e o novo datafile continua lá com 3Mb.


    Ricardo Muramatsu ricardomuramatsu@hotmail.com www.muramatsu.com.br
    terça-feira, 31 de março de 2009 20:22
  • Olá Ricardo,

    Desculpe minha incompleta resposta. Após rodar o SHRINK FILE você deve rodar o comando ALTER DATABASE.

    ALTER DATABASE Banco REMOVE FILE [Seu Arquivo]


    Se o comando falhar, faça um backup de log, rode o SHRINK e em seguida o comando de ALTER.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Como realizar cálculos com horas no SQL Server – Parte I
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!516.entry 


    Classifique as respostas. O seu feedback é imprescindível
    sexta-feira, 3 de abril de 2009 17:23