Полное резервное копирование не усекает файл журнала транзакций.
Предполагая фол. сценарий:
- Полная резервная копия в 6 утра
- Бэкап TLog в 10:00
- Полное резервное копирование в 13:00
- Бэкап TLog в 18:00
- Немедленный сбой в следующую секунду (поэтому резервная копия хвостового журнала не требуется)
Шаги по восстановлению:
- Восстановить полную резервную копию с точки 3 (содержит данные на 13:00)
- Затем восстановите резервную копию tlog с шага 4 (содержит журнал с 10:00 до 18:00).
Вопрос: как во время восстановления система узнает, что в базе данных необходимо воспроизвести только определенную часть файла журнала (после 13:00 [исключить с 10:00 до 13:00])? Проверяет ли он временные метки в резервной копии журнала транзакций, чтобы сравнить ее с полной резервной копией? Или он проверяет LSN?
Точно так же в другом сценарии, скажем, мы делаем полную резервную копию в 10:00, а затем делаем резервную копию журнала транзакций в 12:00. В журнале транзакций будут все транзакции до 12:00 (и даже до 10:00, если предположить, что db существовал до 10:00 и не было предыдущей резервной копии журнала транзакций). Теперь, когда мы восстанавливаем полную резервную копию, а затем применяем резервную копию журнала транзакций, как система узнает, что нужно воспроизвести только транзакции в журнале после 10:00? Поскольку все те, что были до 10 утра, уже будут там как часть полного восстановления резервной копии. Проверяется ли это с помощью временных меток или LSN?