Sobes.tech
Middle

Jak działa przywracanie bazy danych z pełnej + różnicowej + dziennika transakcji?

sobes.tech AI

Odpowiedź od AI

Przywracanie bazy danych z pełnych (full), różnicowych (differential) i dzienników transakcji (transaction log) odbywa się w kilku etapach:

  1. Przywracany jest ostatni pełny backup — jest to stan bazowy bazy.
  2. Następnie stosowany jest ostatni backup różnicowy, zawierający zmiany od czasu pełnego backupu.
  3. Po tym kolejno stosowane są wszystkie dzienniki transakcji wykonane po backupie różnicowym, aby doprowadzić bazę do pożądanego stanu na moment ostatniego logu.

Ważne jest użycie opcji NORECOVERY na etapach pośrednich, aby baza pozostała w stanie odzyskiwania i akceptowała kolejne backupy, a po zastosowaniu wszystkich — wykonać RECOVERY.

Przykład poleceń:

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;