Aplicando backups de log de transações
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. Para aplicar um backup de log de transações, devem ser atendidos os seguintes requisitos:
O backup de banco de dados completo imediatamente anterior ou backup de banco de dados diferencial deve ser restaurado primeiro.
Todos os logs de transações criados após o backup 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.
O banco de dados ainda não foi 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.
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 duração será tratada como incompleta e as modificações de dados registradas no primeiro backup de log de transações serão revertidas. O SQL Server não permite que o segundo backup de log de transações seja aplicado depois deste ponto.
Observação |
---|
Em algumas circunstâncias, você pode adicionar um arquivo explicitamente durante a restauração do log. Para obter mais informações, consulte Controlando a criação de arquivos adicionados durante o roll-forward. |
Tendo 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 do final do log quando exigido, deve estar disponível antes do início da sequência de restauração.
Usando backups de log para restaurar até o ponto de falha
Considere a seguinte sequência de eventos.
Hora |
Evento |
---|---|
8h |
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. |
16h |
Backup de log de transações. |
18h |
Faça um backup do banco de dados para criar um backup completo do banco de dados. |
20h |
Backup de log de transações. |
21h45 |
Ocorre falha. |
Observação |
---|
Para obter uma explicação da sequência de backups desse exemplo, consulte Criando backups de log de transações. |
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: Restaure o banco de dados usando o backup de banco de dados completo mais recente
Crie um backup do final do log de transações atualmente ativo a partir do ponto de falha.
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: Restaure 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. |
Crie um backup do final do log de transações atualmente ativo a partir do ponto de falha.
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.
Usando backups de log para restaurar até um point-in-time específico
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, consulte Restaurando um banco de dados para um ponto em um backup.
Aplicando backups de log de transações
Uma prática recomendada é restaurar todos os backups de log usando WITH NORECOVERY:
RESTORE LOG database_name FROM <backup_device> WITH NORECOVERY
Então, depois de restaurar o último backup de log, recupere o banco de dados em uma operação separada:
RESTORE DATABASE database_name WITH RECOVERY
Para aplicar um backup de log de transações
Para restaurar até seu ponto de recuperação