Sobes.tech
Назад к вопросам
Middle
9

Как работает восстановление базы данных из full + differential + transaction log backup?

Компании, где спрашивали
Интехкард

Ответ от нейросети

sobes.tech AI

Восстановление базы данных из полного (full), дифференциального (differential) и журнала транзакций (transaction log) бэкапов происходит в несколько этапов:

  1. Восстанавливается последний полный бэкап — это базовое состояние базы.
  2. Затем применяется последний дифференциальный бэкап, который содержит изменения с момента полного бэкапа.
  3. После этого последовательно применяются все журналы транзакций, сделанные после дифференциального бэкапа, чтобы довести базу до нужного состояния на момент последнего лога.

Важно при восстановлении использовать опцию NORECOVERY для промежуточных шагов, чтобы база оставалась в состоянии восстановления и принимала последующие бэкапы, и только после применения всех — выполнить RECOVERY.

Пример команд:

RESTORE DATABASE MyDB FROM DISK = 'full.bak' WITH NORECOVERY;
RESTORE DATABASE MyDB FROM DISK = 'diff.bak' WITH NORECOVERY;
RESTORE LOG MyDB FROM DISK = 'log1.trn' WITH NORECOVERY;
RESTORE LOG MyDB FROM DISK = 'log2.trn' WITH RECOVERY;