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

Aplica-se a: simSQL Server (todas as versões compatíveis)

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 .

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 backup de banco de dados diferencial 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 poderá ser recuperado até que o log de transações final seja 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). 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

Depois de finalizar a operação de restauração e recuperar o banco de dados, o processo de recuperação será executado para garantir a integridade do banco de dados. Saiba mais sobre a recuperação de banco de dados em 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 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.

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

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

Para restaurar o banco de dados a 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 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 18h. Restaure o backup de banco de dados completo mais recente das 18h e aplique o backup de log das 20h e o backup da parte final do log.

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

Esse processo alternativo será útil se um problema impedir o uso do backup de banco de dados completo 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.

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, veja Restaurar um banco de dados do SQL Server em um ponto específico (Modelo de recuperação completa).

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

Confira também

O log de transações (SQL Server)
Guia de arquitetura e gerenciamento de log de transações do SQL Server