Partilhar via


Aplicar backups de log de transações (SQL Server)

O tópico só é relevante para o modelo de recuperação completa ou modelo de recuperação bulk-logged.

Este tópico descreve a aplicação de backups de log de transações como parte da restauração de um banco de dados SQL Server .

Neste tópico:

Requisitos para restaurar backups de log de transação

Para aplicar um backup de log de transações, devem ser atendidos os seguintes requisitos:

  • backups de log suficientes para uma sequência de restauração: Você deve ter backups de registros de log suficientes para concluir uma sequência de restauração. Os backups de log necessários, incluindo o backup da parte final do log , quando necessário, devem estar disponíveis antes do início da sequência de restauração.

  • Ordem de restauração correta: O backup de banco de dados completo imediatamente anterior ou o backup diferencial do banco de dados deve ser restaurado primeiro. Em seguida, todos os logs de transações criados após o backup de banco de dados completo ou diferencial devem ser restaurados em ordem cronológica. Se um backup de log de transações nessa cadeia de logs for perdido ou danificado, você poderá restaurar apenas os logs de transações anteriores ao log ausente.

  • Banco de dados ainda não recuperado: O banco de dados não pode ser recuperado até que o log de transações final tenha sido aplicado. Se você recuperar o banco de dados depois de restaurar um dos backups de log de transações intermediários antes do final da cadeia de logs, não poderá restaurar o banco de dados além desse ponto sem restaurar a sequência completa, começando com o backup de banco de dados completo.

    Dica

    Uma prática recomendada é restaurar todos os backups de log (RESTORE LOG database_name WITH NORECOVERY). Em seguida, depois de restaurar o último backup de log, recupere o banco de dados em uma operação separada (RESTORE DATABASE database_name WITH RECOVERY).

Recuperação e logs de transações

Ao concluir a operação de restauração e recuperar o banco de dados, a recuperação reverte todas as transações incompletas. Isso é conhecido como o fase Desfazer. A reversão é necessária para restaurar a integridade do banco de dados. Depois da reversão, o banco de dados fica online e mais nenhum backup de log de transações pode ser aplicado ao banco de dados.

Por exemplo, uma série de backups de log de transações contém uma transação de execução longa. O início da transação é registrado no primeiro backup de log de transações, mas o término da transação é registrado no segundo backup de log de transações. Não há registro de uma operação de confirmação ou reversão no primeiro backup de log de transações. Se uma operação de recuperação for executada quando o primeiro backup de log de transações for aplicado, a transação de longa execução será tratada como incompleta e as modificações de dados registradas no primeiro backup de log de transações serão revertidas. SQL Server não permite que o segundo backup de log de transação seja aplicado depois deste ponto.

Observação

Em algumas circunstâncias, você pode adicionar um arquivo explicitamente durante a restauração do log.

Usando backups de log para restaurar até o ponto de falha

Considere a seguinte sequência de eventos.

Hora Evento
8:00h Faça um backup do banco de dados para criar um backup completo do banco de dados.
Meio-dia Backup de log de transações.
16:00h Backup de log de transações.
18:00h Faça um backup do banco de dados para criar um backup completo do banco de dados.
20:00h Backup de log de transações.
21h45 Ocorre falha.

Observação

Para obter uma explicação dessa sequência de exemplo de backups, consulte Backups de log de transações (SQL Server).

Para restaurar o banco de dados até seu estado em 21h45 (o ponto de falha), um dos seguintes procedimentos alternativos pode ser usado:

Alternativa 1: restaurar o banco de dados usando o backup de banco de dados completo mais recente

  1. Crie um backup do final do log de transações atualmente ativo a partir do ponto de falha.

  2. Não restaure o backup de banco de dados completo das 8h. Em vez disso, restaure o backup de banco de dados mais recente das 18h e aplique o backup de log das 20h e o backup do final do log.

Alternativa 2: restaurar o banco de dados usando o backup de banco de dados completo mais antigo

Observação

Esse processo alternativo será útil se um problema impedir o uso do backup de banco de dados completo das 18h. Esse processo leva mais muito tempo do que restaurar o backup de banco de dados completo das 18h.

  1. Crie um backup do final do log de transações atualmente ativo a partir do ponto de falha.

  2. Restaure o backup de banco de dados completo das 8h, e depois restaure todos os quatro backups de log de transações em sequência. Isso efetua roll forward de todas as transações completas até 21h45.

    Essa alternativa mostra a segurança redundante oferecida pela manutenção de uma cadeia de backups de log de transações em uma série de backups de banco de dados completos.

Observação

Em alguns casos, você pode usar também logs de transações para restaurar um banco de dados até um point-in-time específico. Para obter mais informações, restaure um banco de dados SQL Server para um ponto no tempo (modelo de recuperação completa).

Related Tasks

Para aplicar um backup de log de transações

Para restaurar até seu ponto de recuperação

Para recuperar um banco de dados depois de restaurar backups usando WITH NORECOVERY

Consulte Também

O log de transações (SQL Server)