locked
Como voltar um banco de dados ao Estado de NoRecovery RRS feed

  • Pergunta

  • Ola para Todos!

    Gostaria de saber se tenho como voltar um Banco de Dados ao estado de NoRecovery. É que estou implementando um rotina de redundancia em dois servidores no qual só posso utilizar voltando backup.

    Estou fazendo da seguinte maneira:
    =================================

    No Servidor Principal estou rodando via JOB o seguinte:

    BACKUP DATABASE banco TO DISK = 'caminho_do_backup' WITH DIFFERENTIAL

    No Segundo servidor estou retornando também através de JOB da seguinte maneira:

    USE master
    RESTORE DATABASE banco
    FROM Disk = 'caminho_do_backup'
    WITH Recovery

    O Problema:
    ===========

    Sei que se colocar o ultimo comando no restore como NoRecovery o banco vai ficar em Stanby esperando retornar mais Backups Diferenciais. O que eu quero é fechar o banco para consulta e depois volta-lo para o estado de NoRecovery para continuar a retornar backups sem precisar voltar um backup FULL novamente e ai então voltar o diferencial.

    Alguem sabe me informar se existe esta possibilidade?

    Grato,
    Thiago

    segunda-feira, 4 de setembro de 2006 22:33

Respostas

  • Guellerof,

    Se durante a restauração você utilizar a opção Recovery ou omitir a opção Norecovery e não utilizar a opção standby, você só conseguirá fazer nova restauração sobre esse banco se reiniciar sua sequencia de restauração com um full backup.


    Vinicius Fonseca - MCP | MCTS | MCDBA | MCITP | MCTS | MCT | ITIL Foundation - DGA SISTEMAS - Se minha resposta for útil, classifique-a. :)

    terça-feira, 20 de novembro de 2018 16:59

Todas as Respostas

  • Olá TchiBH,

    Pelo que entendi o que vc quer édeixar o banco e read-only e poder continuar voltando novos backup certo? Se vc usar o conceito de recovery e norecovery realmente não vai dar certo porque uma que o banco é colocado no status de recovery, para ele voltar novamente para norecovery só mesmo começando o restore do zero. O problema é que neste caso o banco ficará em loading e não permitirá acesso de leitura.

    Aa solução é vc usar a opção STANDBY durante o restor. Assim seu banco ficará disponível como leitura e ainda permitira novos restores, sempre usando o STANDBY. Quando vc quiser disponibilizar o banco para uso normal, basta voltar o último restore sem a opção STANDBY.

    Um exemplo tirado do BOL do SQL Server 2000:.

    Examples
    This example sets up the MyNwind database on a standby server. The database can be used in read-only mode between restore operations.

    -- Restore the initial database backup on the standby server.
    USE master
    GO
    RESTORE DATABASE MyNwind
       FROM MyNwind_1
       WITH STANDBY = 'c:\undo.ldf'
    GO
    -- Apply the first transaction log backup.
    RESTORE LOG MyNwind
       FROM MyNwind_log1
       WITH STANDBY = 'c:\undo.ldf'
    GO
    -- Apply the next transaction log backup.
    RESTORE LOG MyNwind
       FROM MyNwind_log2
       WITH STANDBY = 'c:\undo.ldf'
    GO
    -- Repeat for each transaction log backup created on the
    -- primary server.
    --
    -- Time elapses.. .. ..
    --
    -- The primary server has failed. Back up the
    -- active transaction log on the primary server.
    BACKUP LOG MyNwind
       TO MyNwind_log3
       WITH NO_TRUNCATE
    GO
    -- Apply the final (active) transaction log backup
    -- to the standby server. All preceding transaction
    -- log backups must have been already applied.
    RESTORE LOG MyNwind
       FROM MyNwind_log3
       WITH STANDBY = 'c:\undo.ldf'
    GO
    -- Recover the database on the standby server,
    -- making it available for normal operations.
    RESTORE DATABASE MyNwind
       WITH RECOVERY
    GO

    Qualquer coisa procure no BOL por RESTORE DATABASE e selecione a opção "How to set up, maintain, and bring online a standby server (Transact-SQL)"

    um abraço
    Nilton Pinheiro
    www.mcdbabrasil.com.br

    terça-feira, 5 de setembro de 2006 00:28
  • Há, quando tiver dúvidas de infra, post no fórum do TechNet ok !? link http://forums.microsoft.com/Technet-BR/default.aspx

     Nilton Pinheiro - MVP wrote:

    Olá TchiBH,

    Pelo que entendi o que vc quer édeixar o banco e read-only e poder continuar voltando novos backup certo? Se vc usar o conceito de recovery e norecovery realmente não vai dar certo porque uma que o banco é colocado no status de recovery, para ele voltar novamente para norecovery só mesmo começando o restore do zero. O problema é que neste caso o banco ficará em loading e não permitirá acesso de leitura.

    Aa solução é vc usar a opção STANDBY durante o restor. Assim seu banco ficará disponível como leitura e ainda permitira novos restores, sempre usando o STANDBY. Quando vc quiser disponibilizar o banco para uso normal, basta voltar o último restore sem a opção STANDBY.

    Um exemplo tirado do BOL do SQL Server 2000:.

    Examples
    This example sets up the MyNwind database on a standby server. The database can be used in read-only mode between restore operations.

    -- Restore the initial database backup on the standby server.
    USE master
    GO
    RESTORE DATABASE MyNwind
       FROM MyNwind_1
       WITH STANDBY = 'c:\undo.ldf'
    GO
    -- Apply the first transaction log backup.
    RESTORE LOG MyNwind
       FROM MyNwind_log1
       WITH STANDBY = 'c:\undo.ldf'
    GO
    -- Apply the next transaction log backup.
    RESTORE LOG MyNwind
       FROM MyNwind_log2
       WITH STANDBY = 'c:\undo.ldf'
    GO
    -- Repeat for each transaction log backup created on the
    -- primary server.
    --
    -- Time elapses.. .. ..
    --
    -- The primary server has failed. Back up the
    -- active transaction log on the primary server.
    BACKUP LOG MyNwind
       TO MyNwind_log3
       WITH NO_TRUNCATE
    GO
    -- Apply the final (active) transaction log backup
    -- to the standby server. All preceding transaction
    -- log backups must have been already applied.
    RESTORE LOG MyNwind
       FROM MyNwind_log3
       WITH STANDBY = 'c:\undo.ldf'
    GO
    -- Recover the database on the standby server,
    -- making it available for normal operations.
    RESTORE DATABASE MyNwind
       WITH RECOVERY
    GO

    Qualquer coisa procure no BOL por RESTORE DATABASE e selecione a opção "How to set up, maintain, and bring online a standby server (Transact-SQL)"

    um abraço
    Nilton Pinheiro
    www.mcdbabrasil.com.br

    terça-feira, 5 de setembro de 2006 00:30
  •  

     

     outra ideia para deixar em ready only e alterar para ready only mesmo


     Alter Database banco Set Read_Only with RollBack Immediate

     para voltar

     Alter Database Banco Set Read_Write  

     

    Abs;

     

     

    terça-feira, 5 de setembro de 2006 10:15
  • Conseguiu achar a solução? tenho esse mesmo cenário que voce
    terça-feira, 20 de novembro de 2018 00:00
  • Guellerof,

    Se durante a restauração você utilizar a opção Recovery ou omitir a opção Norecovery e não utilizar a opção standby, você só conseguirá fazer nova restauração sobre esse banco se reiniciar sua sequencia de restauração com um full backup.


    Vinicius Fonseca - MCP | MCTS | MCDBA | MCITP | MCTS | MCT | ITIL Foundation - DGA SISTEMAS - Se minha resposta for útil, classifique-a. :)

    terça-feira, 20 de novembro de 2018 16:59