Sobes.tech
Middle

Jak funguje obnovení databáze z úplného + diferenčního + transakčního zálohy?

sobes.tech AI

Odpověď od AI

Obnova databáze z úplných (full), diferenčních (differential) a transakčních logů (transaction log) probíhá ve více fázích:

  1. Obnoví se poslední úplná záloha — to je základní stav databáze.
  2. Poté se aplikuje poslední diferenční záloha, která obsahuje změny od poslední úplné zálohy.
  3. Následně se sekvenčně aplikují všechny transakční logy po diferenční záloze, aby se databáze dostala do požadovaného stavu k poslednímu logu.

Je důležité při mezistupních používat možnost NORECOVERY, aby databáze zůstala v režimu obnovení a přijímala další zálohy, a až po jejich aplikaci provést RECOVERY.

Příklad příkazů:

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;