Aplikace záloh transakčních protokolů (SQL Server)
platí pro:SQL Server
Téma je relevantní pouze pro úplný model obnovení nebo model hromadně protokolovaného obnovení.
Toto téma popisuje použití záloh transakčních protokolů jako součást obnovení databáze SQL Serveru.
Požadavky na obnovení záloh transakčních protokolů
Pokud chcete použít zálohu transakčního protokolu, musí být splněny následující požadavky:
Dostatečné zálohy logu pro sekvenci obnovení: K dokončení sekvence obnovení musíte mít dostatek záznamů logu. Potřebné zálohy protokolů, včetně zálohování koncového protokolu , pokud je to potřeba, musí být k dispozici před zahájením sekvence obnovení.
Správné pořadí obnovení: nejprve je nutné obnovit okamžitě předchozí úplné zálohování databáze nebo rozdílové zálohování databáze. Potom je nutné obnovit všechny transakční protokoly vytvořené po úplném nebo rozdílové zálohování databáze v chronologickém pořadí. Pokud dojde ke ztrátě nebo poškození zálohy transakčního protokolu v tomto řetězu protokolů, můžete obnovit pouze transakční protokoly před chybějícím transakčním protokolem.
Databáze ještě nebyla obnovena: Databázi nelze obnovit, dokud nebude aplikován konečný transakční protokol. Pokud databázi obnovíte po obnovení jedné z mezipaměťových záloh transakčních protokolů ještě před dokončením řetězce protokolů, nemůžete databázi obnovit po tomto bodě bez nutnosti znovu zahájit celý proces obnovení, počínaje úplnou zálohou databáze.
Spropitné
Osvědčeným postupem je obnovit všechny zálohy protokolů (
RESTORE LOG *database_name* WITH NORECOVERY
). Po obnovení poslední zálohy protokolu pak obnovte databázi v samostatné operaci (RESTORE DATABASE *database_name* WITH RECOVERY
).
Protokoly obnovení a transakcí
Po dokončení operace obnovení a obnovení databáze se spustí proces obnovení, aby se zajistila integrita databáze. Další informace o procesu obnovení naleznete v tématu Přehled obnovení a zotavení (SQL Server).
Po dokončení procesu obnovení databáze přejde do režimu online a na databázi nelze použít žádné další zálohy transakčních protokolů. Například řada záloh transakčních protokolů obsahuje dlouhotrvající transakci. Začátek transakce se zaznamená do prvního zálohování transakčního protokolu, ale konec transakce se zaznamená do zálohy druhého transakčního protokolu. V prvním zálohování transakčního protokolu neexistuje žádný záznam operace potvrzení ani vrácení zpět. Pokud se operace obnovení spustí při použití prvního zálohování transakčního protokolu, dlouhotrvající transakce je považována za neúplnou a změny dat zaznamenané v prvním zálohování transakčního protokolu transakce se vrátí zpět. SQL Server neumožňuje použití druhé zálohy transakčního protokolu po tomto bodu.
Poznámka
Za určitých okolností můžete explicitně přidat soubor během obnovení protokolu.
Použijte zálohy protokolů na obnovení do bodu selhání
Předpokládejme následující posloupnost událostí.
Čas | Událost |
---|---|
8:00 | Zálohujte databázi a vytvořte úplnou zálohu databáze. |
Poledne | Zálohujte transakční protokol. |
4:00 | Zálohujte transakční protokol. |
18:00 | Zálohujte databázi a vytvořte úplnou zálohu databáze. |
20:00 | Zálohujte transakční protokol. |
9:45 P.M. | Dojde k chybě. |
Vysvětlení této ukázkové posloupnosti záloh najdete v tématu zálohování transakčních protokolů (SQL Server).
Pokud chcete obnovit databázi do jejího stavu v 9:45 (bod selhání), můžete použít některý z následujících alternativních postupů:
Alternativní 1: Obnovení databáze pomocí nejnovějšího úplného zálohování databáze
V okamžiku selhání vytvořte zálohu protokolu tail-log aktuálně aktivního transakčního protokolu.
Neobnovujte plnou zálohu databáze z 8:00 ráno. Místo toho obnovte nedávnější zálohu celé databáze z 18:00, a pak použijte zálohu protokolu z 20:00 a zálohu koncového protokolu.
alternativní 2: Obnovení databáze pomocí dřívějšího úplného zálohování databáze
Tento alternativní proces je užitečný, pokud vám problém brání v použití plné databázové zálohy v 18:00. Tento proces trvá déle než obnovení z úplné zálohy databáze v 18:00.
Vytvořte zálohu tail-log aktuálně aktivního transakčního protokolu v okamžiku selhání.
Proveďte obnovení úplné zálohy databáze z 8:00 hodin, a pak postupně obnovte všechny čtyři zálohy transakčních protokolů. Tím se aktualizují všechny dokončené transakce až do 21:45.
Tato alternativa upozorňuje na redundantní zabezpečení, které nabízí údržba řetězu záloh transakčních protokolů napříč řadou úplných záloh databáze.
V některých případech můžete také pomocí transakčních protokolů obnovit databázi k určitému bodu v čase. Pro více informací navštivte obnovení databáze SQL Serveru do určitého bodu v čase (úplný režim obnovy).
Související úkoly
Použití zálohy transakčního protokolu
Obnovit do bodu obnovení
obnovení databáze do bodu selhání v rámci úplného modelu obnovení (Transact-SQL)
obnovení databáze SQL Serveru k určitému bodu v čase (úplný model obnovení)
SqlRestore (SMO)
obnovení souvisejících databází, které obsahují označené transakce
Obnovení databáze po obnovení záloh pomocí funkce WITH NORECOVERY
Viz také
Transakční protokol (SQL Server)
průvodce architekturou a správou transakčních protokolů SQL Serveru