Partilhar via


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

Aplica-se a:SQL Server

O tópico é relevante apenas para o modelo de recuperação completa ou o modelo de recuperação em massa registada.

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

Requisitos para restaurar backups de log de transações

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

  • backups de log suficientes para uma sequência de restauração: Você deve ter backup de registros de log suficientes para concluir uma sequência de restauração. Os backups de log necessários, incluindo o backup de tail-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 completo do banco de dados 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 esse backup de banco de dados completo ou diferencial devem ser restaurados em ordem cronológica. Se um backup de log de transações nesta cadeia de registos for perdido ou danificado, pode restaurar apenas os registos de transações antes do registo de transações perdido.

  • 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, isso antes do final da cadeia de logs, não poderá restaurar o banco de dados após esse ponto sem reiniciar a sequência de restauração completa, começando com o backup completo do banco de dados.

    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).

Logs de recuperação e de transações

Quando você conclui a operação de restauração e recupera o banco de dados, o processo de recuperação é executado para garantir a integridade do banco de dados. Para obter mais informações sobre o processo de recuperação, consulte Visão geral da restauração e recuperação (SQL Server).

Após a conclusão do processo de recuperação, o banco de dados fica online e não é possível aplicar mais backups de log de transações ao banco de dados. Por exemplo, uma série de backups de log de transações continha uma transação de longa duração. O início da transação é registrado no primeiro backup do log de transações, mas o final da transação é registrado no segundo backup do log de transações. Não há registro de uma operação de confirmação ou reversão no primeiro backup do 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 da transação serão revertidas. O SQL Server não permite que o segundo backup de log de transações seja aplicado após esse ponto.

Observação

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

Usar backups de log para restaurar até ao ponto de falha

Suponha a seguinte sequência de eventos.

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

Para obter uma explicação dessa sequência de exemplo de backups, consulte Transaction Log Backups (SQL Server).

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

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

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

  2. Não restaure o backup completo do banco de dados das 8h00. Em vez disso, restaure o backup de banco de dados completo mais recente das 18:00 e, em seguida, aplique o backup de P.M. log das 8:00 e o backup de tail-log.

Alternativa 2: Restaurar o banco de dados usando um backup de banco de dados completo anterior

Este processo alternativo é útil se um problema o impedir de usar o backup completo do banco de dados das 18h00. Esse processo leva mais tempo do que a restauração a partir do backup completo do banco de dados das 18h00.

  1. Crie uma cópia de segurança do tail-log do log de transações atualmente ativo a partir do momento em que ocorreu a falha.

  2. Restaure o backup completo do banco de dados das 8h00 e, em seguida, restaure todos os quatro backups de log de transações em sequência. Isso antecipa todas as transações concluídas até as 21h45.

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

Em alguns casos, pode-se também usar logs de transações para restaurar uma base de dados a um momento específico no tempo. Para obter mais informações, Restaurar um banco de dados do SQL Server para um momento específico no tempo (modelo de recuperação completa).

Tarefas relacionadas

Para aplicar um backup de log de transações

Para restaurar o seu ponto de recuperação

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

Ver também

o log de transações (SQL Server)
Guia de Arquitetura e Gestão do Log de Transações do SQL Server