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
Recuperação e logs de transações
Usando backups de log para restaurar até o ponto de falha
Tarefas relacionadas
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ê deverá 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.
**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). 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).
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. O 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. |
[Início]
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 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: 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 da manhã 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: 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.
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, consulte Restaurar um banco de dados do SQL Server até um ponto determinado (modelo de recuperação completa). |
[Início]
Tarefas relacionadas
Para aplicar um backup de log de transações
Para restaurar até seu ponto de recuperação
Restaurar um banco de dados até o ponto de falha no modelo de recuperação completa (Transact-SQL)
Restaurar um banco de dados do SQL Server até um ponto determinado (modelo de recuperação completa)
SqlRestore (SMO)
Recuperação de bancos de dados relacionados que contêm transação marcada
Para recuperar um banco de dados depois de restaurar backups usando WITH NORECOVERY
[Início]