Как восстановить дифференциальную резервную копию в случае сбоя сервера

План резервного копирования и восстановления

Full -08:00 PM

Diff - 02:00 PM

Diff - 05:00 PM 

Модель восстановления: простая

Я делаю резервную копию (.bak) в (Сетевом ПК) в другом месте

Когда я пытаюсь восстановить полную базу данных без восстановления, она восстанавливается должным образом, но я не могу сделать резервную копию файла дифференциальной резервной копии, отображается сообщение «Невозможно создать план восстановления из-за разрыва цепочки LSN».


person Ravi vanzara    schedule 01.12.2017    source источник
comment
Дифференциальное резервное копирование предшествует Полному резервному копированию. Вы не можете восстановить более раннюю дифференциальную резервную копию   -  person Squirrel    schedule 01.12.2017
comment
я делаю то же самое сначала полное резервное копирование, затем дифференциальное   -  person Ravi vanzara    schedule 01.12.2017
comment
Восстановите ПОЛНУЮ резервную копию с помощью NORECOVERY, затем DIFF с помощью RECOVERY   -  person Squirrel    schedule 01.12.2017
comment
Возможно, это проблема, упомянутая здесь: dba.stackexchange.com/questions/128280/   -  person MatSnow    schedule 01.12.2017


Ответы (1)


При резервном копировании базы данных в backup header и в msdb (backupset таблица) записываются некоторые данные.

В случае полного и дифференциального резервного копирования интересуют database_backup_lsn, checkpoint_lsn, is_copy_only.

Вы можете восстановить differential резервную копию только через соответствующую full резервную копию.

Чтобы найти правильный full backup для данного differential backup, вы должны рассматривать только полные резервные копии, которые НЕ являются копируемыми. Соответствующая полная резервная копия будет иметь checkpoint_lsn равное database_backup_lsn данной разностной резервной копии.

Вот изображение, на котором я помечаю тем же цветом full backups, который может быть базовым для differential backups:

введите здесь описание изображения

Теперь, например, вы хотите найти соответствующий full backup.

Сначала вы должны найти дифференциальную резервную копию database_backup_lsn, в моем примере это 23064679000002372000077. Затем выполните такой запрос, и вы найдете соответствующую full резервную копию.

select type,
       backup_start_date, 
       backup_finish_date,
       database_backup_lsn,
       checkpoint_lsn,
       is_copy_only,
       f.family_sequence_number,
       f.physical_device_name
from msdb..backupset s 
     join msdb..backupmediafamily f
        on f.media_set_id = s.media_set_id  
where database_name = 'basedati_bi' and type = 'D' and is_copy_only = 0 and checkpoint_lsn = 23064679000002372000077
person sepupic    schedule 01.12.2017
comment
Что такое checkpoint_lsn дифференциальной резервной копии? Можно ли его использовать для поиска подходящей резервной копии журнала для восстановления по разностной резервной копии? - person Danielle Paquette-Harvey; 29.04.2019