В стратегии дифференциальной резервной копии необходимо восстановить первоначальную полную резервную копию базы данных, а затем восстановить последнюю разностную резервную копию.
Восстановление БД при восстановлении нескольких резервных копий.
Как уже говорилось ранее, процесс восстановления в SQL Server имеет решающее значение для поддержания целостности транзакций. Это требует, чтобы все операции, которые были завершены до сбоя, фиксировались в базе данных, а все операции, которые не завершились, откатились.
Команда RESTORE включает параметр, указывающий WITH RECOVERY или WITH NORECOVERY. Опция WITH RECOVERY является параметром по умолчанию и может не указываться. Это гарантирует, что база данных переводится в оперативный режим сразу после восстановления из полной
резервной копии. Однако, если ваша стратегия резервного копирования требует, чтобы после полной резервной копии базы данных были восстановлены дополнительные резервные копии, важно выбрать правильный вариант для каждой команды RESTORE. Процесс в большинстве случаев прост. Все операции восстановления должны быть с опцией NORECOVERY за исключением последней, которая должна выполняться с параметром WITH RECOVERY.
Нет никакого способа восстановить дополнительные резервные копии после восстановления с параметром WITH RECOVERY. Если вы случайно выполнить резервное копирование с помощью параметра WITH RECOVERY, необходимо перезапустить всю последовательность восстановления.
Восстановление базы данных из разностной резервной копии.
Команда для восстановления дифференциальной резервной копии идентична восстановлению полной резервной копии базы данных. Разностные резервные копии часто добавляются в тот же файл в качестве полной резервной копии (в этом случае вам нужно указать конкретный файл из набора носителей, который требуется восстановить).
В этом примере база данных AdventureWorks восстанавливается из первого файла в наборе, содержащем полную резервную копию. Этот набор носителей хранится в файле R:\Backups\AW.bak. Второй файл в наборе носителей является первой разностной резервной копией, но во второй разностной резервной копии (в третьем файле) эти изменения также содержатся. Таким образом, необходимо только восстановить содержимое третьего файла (вторая инструкция RESTORE):
RESTORE DATABASE AdventureWorks
FROM DISK = 'R:\Backups\AW.bak' WITH FILE = 1, NORECOVERY;
RESTORE DATABASE AdventureWorks
FROM DISK = 'R:\Backups\AW.bak' WITH FILE = 3, RECOVERY;
Если оба – полные и дифференциальные – резервные наборы находятся наодном и на том же носителе, SSMS автоматически выбирает необходимыерезервные копии в окне диалога восстановления базы данных и гарантирует,чтоприменяютсяправильные параметрывосстановления.