none
partial backup/restore RRS feed

  • Pergunta

  • preciso da ajuda de vocês mais uma vez.

    Meu cenário é o seguinte:

    Tenho um banco de dados que utilizei o particionamento de dados para outro filegroup, esse outro datagroup chamado "historico" está como read-only, pois só vai possuir dados passados e vai servir apenas para pesquisa.

    Agora preciso fazer apenas o backup/ restore do banco de dados do filegroup primary, pois como esse outro filegroup só serve como pesquisa não haveria a necessidade de fazer o backup/restore desse filegroup também, além de ser uma tabela gigantesca.

    Usei a sintaxe abaixo para fazer um teste de backup/restore, porém, quando faço o restore do filegroup primary o outro fica offline e não consigo nem fazer select. O que faço para o outro filegroup não ficar offline?

     

    Sintaxe backup:

    BACKUP DATABASE AB_BD READ_WRITE_FILEGROUPS,
    FILEGROUP = 'PRIMARY '
    TO DISK='C:\Backup_Primary_OC2.bak'

    Sintaxe restore:

    RESTORE DATABASE AB_BD READ_WRITE_FILEGROUPS,
    FILEGROUP = 'primary'
    FROM DISK='C:\Backup_Primary_OC2.bak'
    WITH FILE=1, RECOVERY,PARTIAL

    Erro ao fazer select na tabela:

    Msg 679, Level 16, State 1, Line 2
    One of the partitions of index '' for table 'dbo.MOVIMENTOS_ATE_2008'(partition ID 72057594040221696) resides on a filegroup ("HISTORICO") that cannot be accessed because it is offline, restoring, or defunct. This may limit the query result.

    muito obrigada

     

    terça-feira, 27 de dezembro de 2011 20:04

Todas as Respostas

  • Elisangela,

    Eu tenho um artigo específico sobre este assunto no meu blog, acesse: pedrogalvaojunior.wordpress.com

     

    Mas, veja este exemplo ajuda:

    CREATE DATABASE SQLMagazine

    ON PRIMARY

       (NAME = SQLMagazine_Dados,

        FILENAME = N'C:\SQL\SQLMagazine_Dados.mdf',

        SIZE = 10MB,

        MAXSIZE = 50MB,

        FILEGROWTH = 10%),

     FILEGROUP Secondary

        (NAME = SQLMagazine_Secondary_Dados,

         FILENAME = N'C:\SQL\SQLMagazine_Secondary_Dados.ndf',

         SIZE = 10MB,

         MAXSIZE = 50MB,

         FILEGROWTH = 10%) 

    LOG ON

     (NAME = SQLMagazine_Log,

      FILENAME = N'C:\SQL\SQLMagazine_Log.ldf',

      SIZE = 10MB,

      MAXSIZE = 50MB,

     FILEGROWTH = 10%)

    GO

    Listagem 7. Backup Full – Banco de Dados SQLMagazine

     

     

     

    -- Bloco 1 --

     

     

     

    Backup Database SQLMagazine

     

    To Disk = 'C:\SQL\Backup-Full-SQLMagazine.bak'

     

    With Init,

     

    NoFormat,

     

    Stats=10,

     

    Description='Backup Full Database SQLMagazine'

     

     

    Listagem 8. Backup Filegroup – Primary e Secondary

     

     

     

    -- Bloco 1 --

     

     

     

    Backup Database SQLMagazine

     

     File = 'SQLMagazine_Dados',

     

     Filegroup = 'Primary'

     

     To Disk = 'C:\SQL\Backup-Primary-SQLMagazine.bak'

     

     With Init, NoFormat, Description ='Backup Filegroup Primary'

     

    Go

     

     

     

    -- Bloco 2 --

     

    Backup Database SQLMagazine

     

     File = 'SQLMagazine_Secondary_Dados',

     

     Filegroup = 'Secondary'

     

     To Disk = 'C:\SQL\Backup-Secondary-SQLMagazine.bak'

     

     With Init, NoFormat,

     

     Description ='Backup Filegroup Secundário'

     

    Go

     

     

    Use Master

     

    Go

     

     

     

    Backup Log SQLMagazine

     

      To Disk = 'C:\SQL\Backup-Log-SQLMagazine.bak'

     

      With Init, Stats=10,

     

      Description='Backup Log Database SQLMagazine'

     

    Go

     

     

    Use Master

     

    Go

     

     

     

    Restore Database SQLMagazine  Filegroup = 'Primary'

     

     From Disk = 'C:\SQL\Backup-Primary-SQLMagazine.bak'

     

     With Partial,  NoRecovery,  Replace

     

    Go

     

     

    Use Mmaster

     

    Go

     

     

     

    Restore Log SQLMagazine

     

    From Disk = 'C:\SQL\Backup-Log-SQLMagazine.bak'

     

    With Recovery,

     

    Replace

     

    Go

     

     

    Use master

     

    Go

     

     

     

    Restore Database SQLMagazine

     

     File = 'SQLMagazine_Secondary_Dados',

     

     Filegroup = 'Secondary'

     

     From Disk = 'C:\SQL\Backup-Secondary-SQLMagazine.bak'

     

     With File=1,  Replace,  NoRecovery

     

    Go

     

     

     

    -- Bloco 2 --

     

    Use master

     

    Go

     

     

     

    Restore Log SQLMagazine

     

     From Disk = 'C:\SQL\Backup-Log-SQLMagazine.bak'

     

     With Recovery

     

    Go

     

     


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    quarta-feira, 28 de dezembro de 2011 23:58
    Moderador
  • Oi Junior muito obrigada pela dica vou dar uma lida, já li muita coisa sua a respeito desse tema que me ajudou muito.

     

    E vi uma thead sua nesse forum que foi daí que fiz o teste e funcionou corretamente o que eu precisava.

    Continuei fazendo o backup e o restore conforme eu postei e executei o comando abaixo no segundo filegroup que um rapaz tinha postado:

    RESTORE DATABASE DB_BANCO FILEGROUP='SECUNDARY' WITH RECOVERY

     

    Muito Obrigada

    quinta-feira, 29 de dezembro de 2011 12:22
  • Bom Dia,

    O PRIMARY contém os metadados do banco e toda vez que você voltá-lo irá enxergar o banco inteiro ainda que nem todos os pedaços estejam disponíveis. Uma vez que apenas o backup do FILEGROUP PRIMARY foi feito, não há como o outro FILEGROUP ficar ONLINE e de fato isso atrapalharia eventuais avaliações do otimizador de consulta. Ainda que você não queira os dados de histórico não estou certo se otimizador conseguirá retornar os dados sem a necessidade de fazer uma leitura mínima na outra partição (metadados, estatísticas, etc).

    Talvez você tenha que combinar a estratégia de particionamento de tabelas com algumas views (particionadas ou não)

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    quinta-feira, 29 de dezembro de 2011 13:47