Přehled obnovení a obnovy (SQL Server)
platí pro:SQL Server
Tento článek obsahuje přehled procesu obnovení a obnovení databáze pro SQL Server.
Přehled
Pokud chcete obnovit databázi SQL Serveru z selhání, musí správce databáze obnovit sadu záloh SQL Serveru v logické správné a smysluplné sekvenci obnovení. Proces obnovení a obnovení SQL Serveru podporuje obnovení dat ze záloh celé databáze, datového souboru nebo datové stránky následujícím způsobem:
Databáze (kompletní obnovení databáze)
Celá databáze je obnovena a zotavena a během operací obnovení a zotavení je databáze v režimu offline.
Datový soubor (obnovovací soubor)
Datový soubor nebo sada souborů se obnoví a obnoví. Během obnovení souboru jsou skupiny souborů, které obsahují soubory, automaticky offline během obnovení. Při každém pokusu o přístup k offline skupině souborů dojde k chybě.
Datová stránka (obnovení stránky)
V rámci úplného modelu obnovení nebo modelu hromadného obnovení můžete obnovit jednotlivé stránky. Obnovení stránky se dá provést u jakékoli databáze bez ohledu na počet skupin souborů.
Zálohování a obnovení SQL Serveru funguje ve všech podporovaných operačních systémech. Informace o podporovaných operačních systémech naleznete v tématu Požadavky na hardware a software. Informace o podpoře záloh ze starších verzí SYSTÉMU SQL Server naleznete v části Podpora kompatibility části RESTORE.
Scénáře obnovení
Scénář obnovení v SQL Serveru je proces obnovy dat z jedné nebo více záloh a následné obnovy databáze. Podporované scénáře obnovení závisí na modelu obnovení databáze a edici SQL Serveru.
Následující tabulka uvádí možné scénáře obnovení, které jsou podporované pro různé modely obnovení.
Scénář obnovení | Při jednoduchém modelu obnovení | V úplných nebo hromadně protokolovaných režimech obnovení |
---|---|---|
Dokončení obnovení databáze | Základní strategie obnovení. Úplné obnovení databáze může zahrnovat jednoduché obnovení a obnovení úplné zálohy databáze. Případně může úplné obnovení databáze zahrnovat obnovení úplné zálohy databáze následované obnovením a obnovením rozdílové zálohy. Další informace naleznete v tématu Dokončení obnovení databáze (jednoduchý model obnovení). |
Základní strategie obnovení. Úplné obnovení databáze zahrnuje obnovení úplné zálohy databáze a případně rozdílové zálohování (pokud existuje) a následné obnovení všech následných záloh protokolů (v posloupnosti). Úplné obnovení databáze je završeno obnovením poslední zálohy protokolu a následným provedením RESTORE WITH RECOVERY. Další informace najdete v tématu dokončení obnovení databáze (úplný model obnovení) |
Obnovení souborů 1 | Obnovte jeden nebo více poškozených souborů jen pro čtení bez obnovení celé databáze. Obnovení souborů je k dispozici pouze v případě, že databáze obsahuje alespoň jednu skupinu souborů jen pro čtení. | Obnoví jeden nebo více souborů bez obnovení celé databáze. Obnovení souboru je možné provést v době, kdy je databáze offline nebo v některých edicích SQL Serveru, zatímco databáze zůstává online. Během obnovení souboru jsou skupiny souborů, které obsahují obnovené soubory, vždy offline. |
Obnovení stránky | Nepoužitelné | Obnoví jednu nebo více poškozených stránek. Obnovení stránky je možné provést, když je databáze offline nebo v některých edicích SQL Serveru, zatímco databáze zůstává online. Během obnovení stránky jsou stránky, které se obnovují, vždy offline. Musí být k dispozici nepřerušený řetěz záloh protokolů až po aktuální soubor protokolu a všechny musí být použity k tomu, aby stránka up-tobyla aktuální s aktuálním souborem protokolu. Další informace naleznete v tématu Obnovení stránek (SQL Server). |
Částečné obnovení 1 | Obnovte a obnovte databázi ve fázích na úrovni skupiny souborů, počínaje primární skupinou souborů a všemi skupinami souborů určenými pro čtení a zápis, včetně sekundárních skupin souborů. | Obnovte a obnovte databázi ve fázích na úrovni skupiny souborů počínaje primární skupinou souborů. Další informace najdete v tématu Obnovení po částech (SQL Server) |
1 Obnova online je podporována jen v edici Enterprise.
Postup obnovení databáze
Pokud chcete provést obnovení souboru, databázový stroj provede dva kroky:
Vytvoří všechny chybějící databázové soubory.
Zkopíruje data ze zálohovacích zařízení do databázových souborů.
Pokud chcete provést obnovení databáze, databázový stroj provede tři kroky:
Vytvoří soubory databáze a transakčního protokolu, pokud ještě neexistují.
Zkopíruje všechna data, protokoly a indexové stránky ze záložního média databáze do souborů databáze.
Použije transakční protokol v tom, co se označuje jako proces obnovení .
Bez ohledu na to, jak se data obnoví, před obnovením databáze zaručuje databázový stroj SQL Serveru logickou konzistenci celé databáze. Pokud například obnovíte soubor, nemůžete ho zpřístupnit online, dokud se dostatečně neposune vpřed, aby byl konzistentní s databází.
Výhody obnovení souboru nebo stránky
Obnovení a obnovení souborů nebo stránek místo celé databáze nabízí následující výhody:
Obnovení méně dat zkracuje čas potřebný ke zkopírování a obnovení dat.
Obnovení souborů nebo stránek na SQL Serveru může umožnit, aby během operace obnovení zůstaly ostatní data v databázi online.
Obnovení a transakční protokol
U většiny scénářů obnovení je nutné použít zálohu transakčního protokolu a umožnit databázovému stroji SQL Serveru spustit proces obnovení pro přenesení databáze do režimu online. Obnovení je proces používaný SQL Serverem pro každou databázi ke spuštění v transakčním konzistentním nebo čistém stavu.
Pokud dojde k převzetí služeb při selhání nebo jinému nečistému vypnutí, mohou být databáze ponechány ve stavu, kdy se některé úpravy nikdy nebyly zapsány z mezipaměti do datových souborů a v datových souborech mohou být některé změny neúplných transakcí. Když se spustí instance SQL Serveru, spustí obnovení každé databáze, která se skládá ze tří fází na základě posledního kontrolního bodu databáze:
fáze 1 je analytická fáze, která analyzuje transakční protokol, aby určila, co je poslední kontrolní bod, a vytvoří tabulku špinavých stránek (DPT) a aktivní transakční tabulku (ATT). DPT obsahuje záznamy stránek, které byly v době vypnutí databáze špinavé. ATT obsahuje záznamy transakcí, které byly aktivní v době, kdy databáze nebyla čistě vypnuta.
fáze 2 je fáze opětovného provedení, která předává všechny změny zaznamenané v protokolu, které nemusí být zapsány do datových souborů v době, kdy byla databáze vypnuta. minimální pořadové číslo protokolu (minLSN) vyžadované pro úspěšné obnovení v celé databázi se nachází v DPT a označí začátek operací opakování potřebných na všech špinavých stránkách. V této fázi databázový stroj SQL Serveru zapíše na disk všechny špinavé stránky patřící do potvrzených transakcí. Fáze 3 je fáze Zpětného Vrácení, která vrací zpět neúplné transakce nalezené v ATT, aby byla zachována integrita databáze. Po vrácení zpět se databáze přenese do režimu online a na databázi se nedají použít žádné další zálohy transakčních protokolů.
Informace o průběhu jednotlivých fází obnovení databáze jsou zaznamenány v protokolu chyb sql Serveru . Průběh obnovení databáze lze sledovat také pomocí rozšířených událostí. Další informace naleznete v blogovém příspěvku Nové rozšířené události pro průběh obnovení databáze.
Poznámka
V případě scénáře postupného obnovení platí, že pokud skupina souborů jen pro čtení byla jen pro čtení již před vytvořením zálohy souborů, použití záloh protokolu na tuto skupinu není nutné a obnovování souborů jej přeskočí.
Poznámka
Pokud chcete maximalizovat dostupnost databází v podnikovém prostředí po spuštění služby SQL Serveru, například po převzetí služeb při selhání instance clusteru s podporou převzetí služeb při selhání AlwaysOn nebo místní restartování, může SQL Server Enterprise Edition po fázi opětovného spuštění přenést databázi do režimu online, zatímco fáze vrácení zpět se stále spouští. To se označuje jako Rychlé obnovení. Rychlé obnovení však není k dispozici, když databáze přejde do online stavu, ale služba SQL Server nebyla restartována. Provádění ALTER DATABASE AdventureWorks SET ONLINE;
například nedovolí, aby byla databáze ve stavu pro čtení i zápis, dokud se nedokončí všechny tři fáze obnovení.
Modely obnovení a podporované operace obnovení
Operace obnovení, které jsou dostupné pro databázi, závisí na modelu obnovení. Následující tabulka shrnuje, jestli a do jaké míry každý z modelů obnovení podporuje daný scénář obnovení.
Operace obnovení | Model úplného obnovení | Model hromadného protokolování obnovy | Jednoduchý model obnovení |
---|---|---|---|
Obnovení dat | Dokončete obnovení (pokud je protokol k dispozici). | Určité riziko ztráty dat. | Všechna data od posledního úplného nebo rozdílového zálohování se ztratí. |
Obnovení k určitému bodu v čase | Jakýkoli čas, který pokrývají zálohy protokolů. | Zakázáno, pokud záloha protokolu obsahuje všechny hromadně protokolované změny. | Nepodporuje se. |
Obnovení souborů 1 | Úplná podpora. | Někdy. 2 | K dispozici pouze pro sekundární soubory jen pro čtení. |
Obnovení stránky 1 | Úplná podpora. | Někdy. 2 | Žádný. |
Dílčí obnovení na úrovni skupiny souborů 1 | Úplná podpora. | Někdy. 2 | K dispozici pouze pro soubory určené jen ke čtení. |
1 k dispozici pouze v edici Enterprise SQL Serveru
2 Požadované podmínky najdete v části Omezení obnovení v rámcijednoduchého modelu obnovení , dále v tomto článku.
Důležitý
Bez ohledu na model obnovení databáze nelze zálohu SQL Serveru obnovit do verze databázového stroje SQL Serveru, která je starší než verze, která vytvořila zálohu.
Scénáře obnovení v rámci jednoduchého modelu obnovení
Jednoduchý model obnovení ukládá následující omezení operací obnovení:
Obnovení souborů a postupné obnovení jsou k dispozici pouze pro souborové skupiny určené jen pro čtení. Informace o těchto scénářích obnovení najdete v tématu Obnovení souborů (jednoduchý model obnovení) a částečné obnovení (SQL Server).
Obnovení stránky není povolené.
Obnovení k určitému bodu v čase není povolené.
Pokud některá z těchto omezení není vhodná pro vaše potřeby obnovení, doporučujeme zvážit použití úplného modelu obnovení. Další informace najdete v tématu Přehled zálohování (SQL Server).
Důležitý
Bez ohledu na model obnovení databáze nelze zálohu SQL Serveru obnovit verzí SQL Serveru, která je starší než verze, která vytvořila zálohu.
Obnovení pomocí modelu hromadného protokolování datového obnovování
Tato část popisuje aspekty obnovení, které jsou jedinečné pro hromadně protokolovaný model obnovení, který je určen výhradně jako doplněk k úplnému modelu obnovení.
Poznámka
Úvod do modelu hromadně protokolovaného obnovení naleznete v tématu Transakční protokol.
Obecně platí, že hromadně protokolovaný model obnovení je podobný úplnému modelu obnovení a informace popsané pro úplný model obnovení platí také pro oba. Obnovení k určitému bodu v čase a online obnovení jsou však ovlivněny modelem obnovení s hromadným protokolováním.
Omezení pro obnovu k určitému bodu v čase
Pokud záloha protokolu pořízená v rámci modelu hromadně protokolovaného obnovení obsahuje hromadně protokolované změny, obnovení k určitému bodu v čase není povolené. Pokus o obnovení systému k určitému časovému bodu ze zálohy protokolu, která obsahuje hromadné změny, způsobí selhání obnovy.
Omezení pro online obnovení
Posloupnost obnovení online funguje pouze v případě, že jsou splněny následující podmínky:
Před spuštěním sekvence obnovení musí být provedeny všechny požadované zálohy protokolů.
Před spuštěním online sekvence obnovení je nutné zálohovat hromadné změny.
Pokud v databázi existují hromadné změny, musí být všechny soubory buď online, nebo nefunkční (to znamená, že už nejsou součástí databáze).
Pokud tyto podmínky nejsou splněné, sekvence online obnovení selže.
Poznámka
Před zahájením online obnovení doporučujeme přepnout na úplný model obnovení. Další informace naleznete v tématu Modely obnovení (SQL Server).
Informace o tom, jak provést online obnovení, naleznete v tématu online obnovení (SQL Server).
Database Recovery Advisor (SQL Server Management Studio)
Nástroj Database Recovery Advisor usnadňuje vytváření plánů obnovení, které implementují optimální správné sekvence obnovení. Vyřešili jsme řadu známých problémů s obnovením databáze a vylepšení požadovaných zákazníky. Mezi hlavní vylepšení zavedená službou Database Recovery Advisor patří:
algoritmus plánu obnovení: Algoritmus použitý k vytváření plánů obnovení se výrazně zlepšil, zejména u složitých scénářů obnovení. Mnoho okrajových případů, včetně scénářů vetvení při obnově k určitému bodu v čase, je zpracováváno efektivněji než v předchozích verzích SQL Serveru.
Obnovení databáze do určitého bodu v čase: Poradce pro obnovu databáze výrazně zjednodušuje obnovení databáze do určitého bodu v čase. Vizuální časová osa zálohování podstatně vylepšuje podporu obnovení na určitý bod v čase. Tato vizuální časová osa umožňuje identifikovat proveditelný bod v čase jako cílový bod obnovení pro obnovení databáze. Časová osa usnadňuje procházení rozvětvované cesty obnovení (cesta, která zahrnuje forky obnovení). Daný plán obnovení k určitému bodu v čase automaticky zahrnuje zálohy, které jsou relevantní pro obnovení k cílovému bodu v čase (datum a čas). Další informace najdete v tématu obnovení databáze SQL Serveru k určitému bodu v čase (úplný model obnovení).
Další informace najdete v tématu Poradce pro obnovení databáze, viz následující blogy o možnostech správy SQL Serveru:
Zrychlené obnovení databáze
Zrychlené obnovení databáze (ADR) je dostupné od SQL Serveru 2019 (15.x). ADR je k dispozici také ve službě Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics (pouze vyhrazený fond SQL) a v Databázi SQL v Microsoft Fabric. Zrychlené obnovení databáze výrazně zlepšuje dostupnost databáze, zejména v případě dlouhotrvajících transakcí, tím, že přepracuje databázový stroj SQL Serveru proces obnovení. Databáze s aktivovanou funkcí ADR dokončí proces obnovení po přepnutí při selhání nebo jiném neočekávaném vypnutí výrazně rychleji. Pokud je povolené ADR, okamžitě se dokončí vrácení zrušených dlouhotrvajících transakcí zpět.
V SQL Serveru 2019 (15.x) a novějších verzích můžete povolit ADR pro každou databázi pomocí následující syntaxe:
ALTER DATABASE [<db_name>] SET ACCELERATED_DATABASE_RECOVERY = ON;
Poznámka
Služba ADR je vždy povolená ve službě Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics (pouze vyhrazený fond SQL) a v Microsoft Fabricu je databáze SQL.