Журналы транзакций для базы данных можно восстановить в среде SSMS или с помощью инструкции RESTORE LOG. Необходимо восстановить все файлы журналов (за исключением последнего) с помощью параметра WITH NORECOVERY, а затем восстановить последний файл журнала (который часто является резервной копией заключительного фрагмента журнала) с помощью параметра WITH RECOVERY.
При использовании стратегии резервного копирования, которая включает в себя резервное копирование журнала транзакций, вы должны начать
восстановление последней полной резервной копии базы данных, а затем последней разностной резервной копии, если таковая существует. А затем необходимо восстановить все журналы транзакций, созданные после последней полной или разностной резервной копии в хронологическом порядке. Любой перерыв в цепочке журналов транзакций вызовет ошибку и потребует перезапуска восстановления с самого начала.
В следующем примере база данных AdventureWorks была испорчена, но файл журнала доступен, так что резервная копия заключительного фрагмента журнала хранится в AW-TailLog.bak:
-- Restore last full database backup RESTORE DATABASE AdventureWorks
FROM DISK = 'R:\Backups\AW.bak' WITH FILE = 1, NORECOVERY;
-- Restore last differential backup RESTORE DATABASE AdventureWorks
FROM DISK = 'R:\Backups\AW.bak' WITH FILE = 3, NORECOVERY;
-- Restore planned log backups RESTORE LOG AdventureWorks
FROM DISK = 'R:\Backups\AW.bak' WITH FILE = 4, NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'R:\Backups\AW.bak' WITH FILE = 5, NORECOVERY;
-- Restore tail-log backup RESTORE LOG AdventureWorks
FROM DISK = 'R:\Backups\AW-TailLog.bak' WITH RECOVERY;
Впредыдущемпримере,файлжурналабылдоступенпослесбоябазыданных,такчторезервноекопированиехвостажурналбыловозможно.ЭтопозволяетвосстановитьБДдоточкиотказа.Еслибыфайлжурналанебылдоступен,последнееплановоерезервноекопированиежурналатранзакций (резервный набор 5 в AW.bak) был бы восстановлен с помощьюопцииRECOVERY,авсетранзакциипослерезервнойкопиибылибыпотеряны.