Imagine a seguinte linha do tempo:
- T0 = backup completo
- T1 = backup de log
- T2 = backup de log
- T3 = backup de log
- T4 = backup completo
- T5 = backup de log
Depois que tudo isso acontecer, se você ainda tiver todos os arquivos de backup, como você restauraria para um ponto no tempo entre T3 e T4?
Meu entendimento é que o backup completo em T4 deve levar o arquivo de log a marcar as transações entre T0 e T4 como inativas, então, em teoria, o log de transações pode não conter mais transações anteriores a T4. Em particular, o backup de log em T5 conterá apenas informações de transação a partir do momento após T4. Isso está correto?
Você deve restaurar desta forma:
Não entendi o que você disse aqui:
Mas este:
está INCORRETO .
Cada
log backup
começa deLSN
onde o anteriorlog backup
para, portanto, não importa se houve ou nãofull backup
entreT3
eT5
.Você pode pegar um "atalho" restaurando apenas
T4
eT5
caso o tempo que você está interessado seja depoisT4
de , mas não é o seu caso, então você deve restaurar todo olog backups
até o último que cobre o tempo em que você está interessado, começando porfull backup
esse precede o momento em que você está interessado.PS Pode ser útil para você saber que a única coisa que pode "truncar" o
log
infull recovery model
élog backup
.Full backup
não tem nada a ver com "marcar transações como inativas".Este artigo Um mito de DBA do SQL Server por dia: (30/30) mitos de backup também podem ajudar.