Pergunta

Ao restaurar um banco de dados SQL Server, percebo que existem três estados de recuperação diferentes para escolher:

  • Restaurar com recuperação
  • Restaurar sem recuperação
  • Restaurar em espera

Sempre deixei o valor padrão, mas o que todos eles significam?

(De preferência em termos leigos)

Foi útil?

Solução

Assassino de Portão,

Em termos simples (e não copiar e colar do SQLBOL), para que você possa entender os conceitos:

RESTORE WITH RECOVERY usa o arquivo de mídia de backup (por exemplo.fulldata.bak) para restaurar o banco de dados até a hora em que o arquivo de backup foi criado.Isso é ótimo se você quiser voltar no tempo para restaurar o banco de dados para um estado anterior - como ao desenvolver um sistema.

Se você deseja restaurar o banco de dados PARA OS DADOS MAIS RECENTES, (ou seja,como se você estivesse fazendo uma recuperação de desastres do sistema e não pudesse perder nenhum dado), então você deseja restaurar esse backup E ENTÃO todos os logs de transações criados desde esse backup.É quando você usa RESTORE NORECOVERY.Isso permitirá que você restaure os logs de transações posteriores até o ponto de falha (desde que você os tenha).

RECUPERAÇÃO COM STANDBY é a capacidade de restaurar o banco de dados até uma data parital (como NORECOVERY acima), mas permitir que o banco de dados ainda seja usado SOMENTE LEITURA.Novos logs de transações ainda podem ser aplicados ao banco de dados para mantê-lo atualizado (um servidor standby).Use isto quando levar muito tempo para restaurar um banco de dados completo para retornar às operações do sistema.(ou seja.se você tiver um banco de dados com vários TB que levaria 16 horas para ser restaurado, mas poderia receber atualizações de log de transações a cada 15 minutos).

Isso é um pouco como um servidor espelho - mas sem que "cada transação" seja enviada para o servidor de backup em tempo real.

Outras dicas

Você pode definir um banco de dados Microsoft SQL Server para estar no modo NORECOVERY, RECOVERY ou STANDBY.

RECOVERY é o status normal e usual do banco de dados onde os usuários podem se conectar e acessar o banco de dados (desde que tenham as permissões adequadas configuradas).

NORECOVERY permite que o administrador do banco de dados restaure arquivos de backup adicionais, como backups diferenciais ou transacionais.Enquanto o banco de dados estiver nesse estado, os usuários não poderão se conectar ou acessar esse banco de dados.

STANDBY é praticamente igual ao status NORECOVERY, porém permite que os usuários se conectem ou acessem o banco de dados em um acesso READONLY.Assim, os usuários podem executar apenas o comando SELECT no banco de dados.Isso é usado no Log Shipping com bastante frequência para fins de relatórios.A única desvantagem é que, embora haja usuários no banco de dados executando consultas, o SQL Server ou um DBA não será capaz de restaurar arquivos de backup adicionais.Portanto, se você tiver muitos usuários acessando o banco de dados o tempo todo, a replicação poderá ficar atrasada.

Dos livros on-line, acho que fica bem claro depois de lido

NORECOVERY

Instrui a operação de restauração a não reverter nenhuma transação não confirmada.A opção NORECOVERY ou STANDBY deverá ser especificada se outro log de transações precisar ser aplicado.Se nem NORECOVERY, RECOVERY ou STANDBY forem especificados, RECOVERY será o padrão.

O SQL Server exige que a opção WITH NORECOVERY seja usada em todas as instruções RESTORE, exceto na final, ao restaurar um backup de banco de dados e vários logs de transações ou quando várias instruções RESTORE são necessárias (por exemplo, um backup completo do banco de dados seguido por um backup diferencial do banco de dados).

Nota Ao especificar a opção NORECOVERY, o banco de dados não poderá ser utilizado neste estado intermediário e não recuperado.

Quando usado com uma operação de restauração de arquivo ou grupo de arquivos, NORECOVERY força o banco de dados a permanecer no estado de restauração após a operação de restauração.Isso é útil em qualquer uma destas situações:

Um script de restauração está sendo executado e o log está sempre sendo aplicado.

Uma sequência de restaurações de arquivos é usada e o banco de dados não se destina a ser utilizado entre duas das operações de restauração.

RECUPERAÇÃO

Instrui a operação de restauração a reverter quaisquer transações não confirmadas.Após o processo de recuperação, o banco de dados está pronto para uso.

Se operações RESTORE subsequentes (RESTORE LOG ou RESTORE DATABASE do diferencial) forem planejadas, NORECOVERY ou STANDBY deverão ser especificados.

Se nem NORECOVERY, RECOVERY ou STANDBY forem especificados, RECOVERY será o padrão.Ao restaurar conjuntos de backup de uma versão anterior do SQL Server, pode ser necessária uma atualização do banco de dados.Esta atualização é executada automaticamente quando WITH RECOVERY é especificado.Para obter mais informações, consulte Backups de log de transações.

ESPERA = desfazer_nome_arquivo

Especifica o nome do arquivo de desfazer para que os efeitos de recuperação possam ser desfeitos.O tamanho necessário para o arquivo de desfazer depende do volume de ações de desfazer resultantes de transações não confirmadas.Se nem NORECOVERY, RECOVERY ou STANDBY forem especificados, RECOVERY será o padrão.

STANDBY permite que um banco de dados seja aberto para acesso somente leitura entre restaurações de log de transações e pode ser usado em situações de servidor de espera quente ou em situações especiais de recuperação nas quais é útil inspecionar o banco de dados entre restaurações de log.

Se o nome do arquivo de desfazer especificado não existir, o SQL Server o criará.Se o arquivo existir, o SQL Server o substituirá.

O mesmo arquivo de desfazer pode ser usado para restaurações consecutivas do mesmo banco de dados.Para obter mais informações, consulte Usando servidores em espera.

Importante Se o espaço livre em disco estiver esgotado na unidade que contém o nome do arquivo de desfazer especificado, a operação de restauração será interrompida.

STANDBY não é permitido quando uma atualização do banco de dados é necessária.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top