Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Toto téma je relevantní pouze pro databáze, které obsahují označené transakce a které používají úplné nebo hromadně protokolované modely obnovení.
Informace o požadavcích na obnovení do konkrétního bodu obnovení najdete v tématu Obnovení databáze SQL Serveru k určitému bodu v čase (úplný model obnovení).
SQL Server podporuje vkládání pojmenovaných značek do transakčního protokolu, aby bylo možné obnovit konkrétní značku. Značky logu jsou specifické pro transakci a jsou vloženy pouze v případě, že je jejich přidružená transakce potvrzena. V důsledku toho mohou být označení svázána s konkrétní prací a můžete se vrátit k bodu, který tuto práci zahrnuje nebo vylučuje.
Než do transakčního protokolu vložíte pojmenované značky, zvažte následující:
Vzhledem k tomu, že transakční značky spotřebovávají místo v protokolu, použijte je pouze pro transakce, které hrají významnou roli ve strategii pro obnovení databáze.
Po potvrzení označené transakce se do tabulky logmarkhistory v msdbvloží řádek.
Pokud označená transakce zahrnuje více databází na stejném databázovém serveru nebo na různých serverech, značky musí být zaznamenány v protokolech všech ovlivněných databází. Další informace naleznete v tématu Použití označených transakcí k obnovení souvisejících databází konzistentně (úplný model obnovení).
Poznámka
Informace o označování transakcí naleznete v tématu Použití označených transakcí k obnovení souvisejících databází konzistentně (úplný model obnovení).
Transact-SQL Syntaxe pro vkládání pojmenovaných značek do transakčního protokolu
Chcete-li vložit značky do transakčních logů, použijte příkaz BEGIN TRANSACTION a klauzuli WITH MARK [popis]. Značka je pojmenována stejně jako transakce. Volitelný popis je textový popis značky, nikoli název značky. Například název transakce i značky vytvořené v následujícím příkazu BEGIN TRANSACTION
je Tx1
:
BEGIN TRANSACTION Tx1 WITH MARK 'not the mark name, just a description'
Transakční protokol zaznamenává název značky (název transakce), popis, databázi, uživatele, informace o datetime a pořadové číslo protokolu (LSN). Informace o datetime se používají spolu s názvem značky pro její jedinečnou identifikaci.
Informace o tom, jak vložit značku do transakce, která zahrnuje více databází, naleznete v tématu Použití označených transakcí k obnovení souvisejících databází konzistentně (úplný model obnovení).
Transact-SQL syntaxe pro návrat k značce
Když se zaměříte na označenou transakci pomocí příkazuRESTORE LOG, můžete se zastavit přímo na nebo těsně před značkou pomocí jedné z následujících možností:
Pomocí klauzule WITH STOPATMARK = '<mark_name>' určete, že označenou transakcí je bod obnovení.
FUNKCE STOPATMARK se přepojí na značku a zahrnuje označenou transakci v roll forwardu.
Pomocí klauzule WITH STOPBEFOREMARK = '<mark_name>' určete, že záznam protokolu, který je bezprostředně před značkou, je bodem obnovení.
FUNKCE STOPBEFOREMARK se posune k značce a vyloučí označenou transakci z posunu vpřed.
Možnosti STOPATMARK a STOPBEFOREMARK podporují volitelnou klauzuli AFTER datetime. Při použití datum a čas nemusí být názvy označení jedinečné.
Pokud je vynecháno "AFTER" datum a čas, posun vpřed se zastaví na první značce, která má zadaný název. Pokud je PO zadání datum a čas, posun vpřed se zastaví na první značce, která má zadaný název, přesně na nebo za datum a čas.
Poznámka
Stejně jako u všech operací obnovení k určitému bodu v čase je obnovení na značku zakázáno, když databáze prochází operacemi, které jsou hromadně protokolovány.
Obnovit označenou transakci
obnovení databáze do označené transakce (SQL Server Management Studio)
Příprava záloh protokolů
V tomto příkladu by vhodná strategie zálohování pro tyto související databáze byla následující:
Pro obě databáze použijte úplný model obnovení.
Vytvořte úplnou zálohu každé databáze.
Databáze je možné zálohovat postupně nebo současně.
Před zálohováním transakčního protokolu označte transakci, která se spouští ve všech databázích. Informace o tom, jak vytvořit označené transakce, naleznete v tématu Použití označených transakcí k obnovení souvisejících databází konzistentně (úplný model obnovení).
Zálohujte transakční protokol v každé databázi.
Obnovení databáze na označenou transakci
Obnovení zálohy
Pokud je to možné, vytvořte zálohy protokolu tail-log nepoškozených databází.
Obnovte nejnovější úplnou zálohu databáze každé databáze.
Identifikujte poslední označenou transakci, která je k dispozici ve všech zálohách transakčních protokolů. Tyto informace jsou uloženy v tabulce logmarkhistory v databázi msdb na každém serveru.
Identifikujte zálohy protokolů pro všechny související databáze, které obsahují tuto značku.
Obnovte každou zálohu protokolu a zastavte se u označené transakce.
Obnovte každou databázi.
Viz také
ZAČÁTEK TRANSAKCE (Transact-SQL)
RESTORE (Transact-SQL)
použít zálohy transakčních protokolů (SQL Server)
použít označené transakce k obnovení souvisejících databází konzistentně (úplný model obnovení)
– přehled obnovení a zotavení (SQL Server)
obnovení databáze SQL Serveru k určitému bodu v čase (úplný model obnovení)
plánování a provádění sekvencí obnovení (úplný model obnovení)