Sdílet prostřednictvím


Zálohování a obnovení databází SQL Serveru

platí pro:SQL Server

Tento článek popisuje výhody zálohování databází SQL Serveru, popisuje základní termíny zálohování a obnovení a zavádí strategie zálohování a obnovení pro SQL Server a aspekty zabezpečení pro zálohování a obnovení SQL Serveru.

Tento článek představuje zálohy SQL Serveru. Konkrétní kroky zálohování databází SQL Serveru najdete v tématu Vytváření záloh.

Komponenta zálohování a obnovení SQL Serveru poskytuje základní ochranu pro ochranu důležitých dat uložených v databázích SQL Serveru. Pokud chcete minimalizovat riziko katastrofické ztráty dat, musíte zálohovat databáze, aby se zachovaly změny dat pravidelně. Dobře plánovaná strategie zálohování a obnovení pomáhá chránit databáze před ztrátou dat způsobenou různými selháními. Otestujte svou strategii obnovením sady záloh a následným obnovením databáze, abyste mohli efektivně reagovat na havárii.

Kromě místního úložiště pro ukládání záloh podporuje SQL Server také zálohování a obnovení ze služby Azure Blob Storage. Další informace najdete v tématu Zálohování a obnovení SQL Serveru pomocí služby Microsoft Azure Blob Storage. U databázových souborů uložených ve službě Azure Blob Storage poskytuje SQL Server 2016 (13.x) možnost používat snímky Azure pro téměř okamžité zálohování a rychlejší obnovení. Další informace najdete v tématu Zálohování snímků souborů pro soubory databáze v Azure. Azure také nabízí řešení zálohování na podnikové úrovni pro SQL Server běžící na virtuálních počítačích Azure. Plně spravované řešení zálohování podporuje skupiny dostupnosti AlwaysOn, dlouhodobé uchovávání, obnovení k určitému bodu v čase a centrální správu a monitorování. Další informace najdete v tématu O zálohování SQL Serveru na virtuálních počítačích Azure.

Proč zálohovat?

  • Zálohování databází SQL Serveru, spouštění postupů obnovení testů na zálohách a ukládání kopií záloh do bezpečného umístění mimo lokalitu chrání před potenciálně katastrofickou ztrátou dat. Zálohování je jediný způsob, jak chránit vaše data.

    S platnými zálohami databáze můžete obnovit data z mnoha selhání, například:

    • Selhání média.
    • Chyby uživatelů, například odstranění tabulky omylem.
    • Selhání hardwaru, například poškozená disková jednotka nebo trvalá ztráta serveru.
    • Přírodní katastrofy. Pomocí zálohování SQL Serveru do služby Azure Blob Storage můžete vytvořit zálohu mimo lokalitu v jiné oblasti, než je vaše místní umístění, abyste ji mohli použít v případě přírodní havárie, která má vliv na vaše místní umístění.
  • Zálohy databáze jsou navíc užitečné pro běžné účely správy, jako je kopírování databáze z jednoho serveru do druhého, nastavení skupin dostupnosti AlwaysOn nebo zrcadlení databáze a archivace.

Glosář termínů zálohování

zálohovat [sloveso]
Proces vytvoření zálohy [podstatné jméno] zkopírováním datových záznamů z databáze SQL Serveru nebo záznamů protokolu z transakčního protokolu.

zálohování [podstatné jméno]
Kopie dat, která můžete použít k obnovení a obnovení dat po selhání. Zálohy databáze lze také použít k obnovení kopie databáze do nového umístění.

zálohovací zařízení
Disk nebo páskové zařízení, do kterého se zapisují zálohy SQL Serveru a ze kterých je možné je obnovit. Zálohy SQL Serveru je také možné zapsat do služby Azure Blob Storage a formát adresy URL se používá k určení cíle a názvu záložního souboru. Další informace najdete v tématu Zálohování a obnovení SQL Serveru pomocí služby Microsoft Azure Blob Storage.

záložní médium
Jeden nebo více pásek nebo souborů disku, do kterých byly zapsány některé zálohy.

zálohování dat
Záloha dat v úplné databázi (záloha databáze), částečná databáze (částečná záloha) nebo sada datových souborů nebo skupin souborů (záloha souborů).

zálohování databáze
Záloha databáze. Úplné zálohy databáze představují celou databázi v době dokončení zálohování. Rozdílové zálohy databáze obsahují pouze změny provedené v databázi od poslední úplné zálohy databáze.

rozdílové zálohování
Záloha dat založená na nejnovější úplné zálohování úplné databáze nebo sady datových souborů nebo skupin souborů (rozdílová základna) a která obsahuje pouze data, která se od této základny změnila.

úplné zálohování
Záloha dat, která obsahuje všechna data v konkrétní databázi nebo sadě skupin souborů nebo souborů, a také dostatek protokolů, aby bylo možné tato data obnovit.

zálohování protokolů
Záloha transakčních protokolů, která zahrnuje všechny záznamy protokolů, které nebyly zálohovány v předchozím zálohování protokolů (úplný model obnovení).

recover
Vrácení databáze do stabilního a konzistentního stavu

zotavení
Fáze spuštění databáze nebo obnovení s obnovením, která databázi přenese do stavu konzistentního s transakcemi.

Model obnovení
Vlastnost databáze, která řídí údržbu transakčního protokolu v databázi. Existují tři modely obnovení: jednoduché, úplné a hromadně protokolované. Model obnovení databáze určuje požadavky na zálohování a obnovení.

obnovit
Vícefázový proces, který zkopíruje všechna data a stránky protokolu ze zadané zálohy SQL Serveru do zadané databáze, a pak přepošlu všechny transakce, které jsou protokolovány do zálohy použitím protokolovaných změn, aby se data přenesla v čase.

Strategie zálohování a obnovení

Zálohování a obnovení dat musí být přizpůsobené konkrétnímu prostředí a musí pracovat s dostupnými prostředky. Proto spolehlivé použití zálohování a obnovení pro obnovení vyžaduje strategii zálohování a obnovení. Dobře navržená strategie zálohování a obnovení vyrovnává obchodní požadavky na maximální dostupnost dat a minimální ztrátu dat a současně zvažuje náklady na údržbu a ukládání záloh.

Strategie zálohování a obnovení obsahuje zálohovanou část a část obnovení. Část strategie zálohování definuje typ a frekvenci zálohování, povahu a rychlost hardwaru, který vyžadují, způsob testování záloh a způsob uložení záložního média (včetně aspektů zabezpečení). Část strategie obnovení definuje, kdo zodpovídá za provádění obnovení, jak se mají provést obnovení, aby splňovaly vaše cíle dostupnosti databáze a minimalizovaly ztrátu dat a jak se testují obnovení.

Návrh efektivní strategie zálohování a obnovení vyžaduje pečlivé plánování, implementaci a testování. Vyžaduje se testování: Nemáte strategii zálohování, dokud úspěšně neobnovíte zálohy ve všech kombinacích, které jsou součástí vaší strategie obnovení, a obnovenou databázi jste otestovali pro fyzickou konzistenci. Musíte zvážit různé faktory. Patří mezi ně:

  • Cíle vaší organizace týkající se produkčních databází, zejména požadavků na dostupnost a ochranu dat před ztrátou nebo poškozením.

  • Povaha každé databáze: její velikost, vzory použití, povaha jejího obsahu, požadavky na data atd.

  • Omezení prostředků, jako je hardware, personál, prostor pro ukládání záložních médií, fyzické zabezpečení uložených médií atd.

Doporučení osvědčených postupů

Účty, které provádějí operace zálohování nebo obnovení, by neměly mít udělená více oprávnění, než je potřeba. Projděte si podrobnosti o konkrétních oprávněních a projděte si zálohování a obnovení . Doporučuje se, aby se zálohy zašifrovaly a pokud je to možné, komprimované.

Aby se zajistilo zabezpečení, měly by záložní soubory mít přípony, které dodržují správné konvence:

  • Záložní soubory databáze by měly mít příponu .BAK
  • Záložní soubory protokolů by měly mít příponu .TRN .

Použití samostatného úložiště

Důležité

Ujistěte se, že zálohy databáze umístíte do samostatného fyzického umístění nebo zařízení od souborů databáze. Když dojde k selhání nebo selhání fyzické jednotky, která ukládá databáze, závisí obnovitelnost na možnosti přístupu k samostatné jednotce nebo vzdálenému zařízení, které zálohy uložily, aby bylo možné provést obnovení. Mějte na paměti, že můžete vytvořit několik logických svazků nebo oddílů ze stejné fyzické diskové jednotky. Před výběrem umístění úložiště pro zálohy pečlivě prostudujte diskové oddíly a rozložení logických svazků.

Volba vhodného modelu obnovení

Operace zálohování a obnovení probíhají v kontextu modelu obnovení. Model obnovení je vlastnost databáze, která řídí způsob správy transakčního protokolu. Model obnovení databáze tedy určuje, jaké typy záloh a scénářů obnovení se pro databázi podporují a jakou velikost by měly být zálohy transakčních protokolů. Databáze obvykle používá jednoduchý model obnovení nebo úplný model obnovení. Úplný model obnovení můžete rozšířit přepnutím na hromadně protokolovaný model obnovení před hromadnými operacemi. Úvod do těchto modelů obnovení a jejich vliv na správu transakčních protokolů najdete v transakčním protokolu.

Nejlepší volba modelu obnovení pro databázi závisí na vašich obchodních požadavcích. Pokud se chcete vyhnout správě transakčních protokolů a zjednodušit zálohování a obnovení, použijte jednoduchý model obnovení. Pokud chcete minimalizovat expozici ztráty práce za cenu administrativní režie, použijte úplný model obnovení. Chcete-li minimalizovat dopad na velikost protokolu během hromadně protokolovaných operací a současně umožnit obnovitelnost těchto operací, použijte model hromadného protokolování obnovení. Informace o vlivu modelů obnovení na zálohování a obnovení najdete v přehledu zálohování.

Návrh strategie zálohování

Po výběru modelu obnovení, který splňuje vaše obchodní požadavky na konkrétní databázi, musíte naplánovat a implementovat odpovídající strategii zálohování. Optimální strategie zálohování závisí na různých faktorech, z nichž jsou obzvláště významné:

  • Kolik hodin denně můžou aplikace přistupovat k databázi?

    Pokud existuje předvídatelné období mimo špičku, doporučujeme pro toto období naplánovat úplné zálohování databází.

  • Jak často dochází ke změnám a aktualizacím?

    Pokud jsou změny časté, zvažte následující:

    • V rámci jednoduchého modelu obnovení zvažte plánování rozdílových záloh mezi úplnými zálohami databáze. Rozdílové zálohování zachycuje pouze změny od poslední úplné zálohy databáze.

    • V rámci úplného modelu obnovení byste měli naplánovat časté zálohování protokolů. Plánování rozdílových záloh mezi úplnými zálohami může zkrátit dobu obnovení snížením počtu záloh protokolů, které musíte obnovit po obnovení dat.

  • Pravděpodobně dojde ke změnám pouze v malé části databáze nebo ve velké části databáze?

    U velké databáze, ve které jsou změny soustředěny v části souborů nebo skupin souborů, mohou být užitečné částečné zálohy a úplné zálohy souborů. Další informace naleznete v tématu Částečné zálohování (SQL Server) a úplné zálohování souborů (SQL Server).

  • Kolik místa na disku bude úplné zálohování databáze vyžadovat?

  • Jak daleko v minulosti vaše firma potřebuje k údržbě záloh?

    Ujistěte se, že máte vytvořený správný plán zálohování podle potřeb aplikace a obchodních požadavků. Při starém zálohování je riziko ztráty dat vyšší, pokud nemáte způsob, jak znovu vygenerovat všechna data až do okamžiku selhání. Než se rozhodnete odstranit staré zálohy kvůli omezením prostředků úložiště, zvažte, jestli se v minulosti vyžaduje obnovitelnost.

Odhad velikosti úplného zálohování databáze

Před implementací strategie zálohování a obnovení byste měli odhadnout, kolik místa na disku bude úplné zálohování databáze používat. Operace zálohování zkopíruje data v databázi do záložního souboru. Záloha obsahuje pouze skutečná data v databázi a ne žádné nevyužité místo. Proto je zálohování obvykle menší než samotná databáze. Velikost úplné zálohy databáze můžete odhadnout pomocí sp_spaceused systémové uložené procedury. Další informace najdete v tématu sp_spaceused (Transact-SQL).

Plánování zálohování

Provádění operace zálohování má minimální vliv na transakce, které jsou spuštěny; proto můžete spouštět operace zálohování během pravidelných operací. Zálohování SQL Serveru můžete provést s minimálním účinkem na produkční úlohy.

Informace o omezení souběžnosti během zálohování najdete v tématu Přehled zálohování (SQL Server).

Jakmile se rozhodnete, jaké typy záloh potřebujete a jak často budete muset každý typ provést, doporučujeme naplánovat pravidelné zálohování jako součást plánu údržby databáze pro databázi. Informace o plánech údržby a jejich vytvoření pro zálohy databáze a zálohování protokolů naleznete v tématu Použití Průvodce plánem údržby.

Testování záloh

Nemáte strategii obnovení, dokud nevytestujete zálohy. Je velmi důležité důkladně otestovat strategii zálohování pro každou databázi obnovením kopie databáze do testovacího systému. Musíte otestovat obnovení všech typů záloh, které chcete použít. Doporučujeme také, abyste po obnovení zálohy provedli kontroly konzistence databáze prostřednictvím dbCC CHECKDB databáze a ověřili, že záložní médium nebylo poškozeno.

Ověření stability a konzistence médií

Použijte možnosti ověření poskytované nástroji pro zálohování (BACKUP příkaz T-SQL, plány údržby SQL Serveru, zálohovací software nebo řešení atd.). Příklad najdete v tématu PŘÍKAZY RESTORE – VERIFYONLY.

Používejte pokročilé funkce, jako je BACKUP CHECKSUM zjišťování problémů se samotným záložním médium. Další informace najdete v tématu Možné chyby médií při zálohování a obnovení (SQL Server)

Strategie zálohování a obnovení dokumentů

Doporučujeme zdokumentovat postupy zálohování a obnovení a ponechat kopii dokumentace v runbooku. Doporučujeme také udržovat provozní příručku pro každou databázi. Tento provozní manuál by měl zdokumentovat umístění záloh, názvů záložních zařízení (pokud existuje) a dobu potřebnou k obnovení testovacích záloh.

Monitorování průběhu pomocí XEventu

Operace zálohování a obnovení můžou trvat poměrně dlouhou dobu kvůli velikosti databáze a složitosti zahrnutých operací. Pokud dojde k problémům s některou operací, můžete pomocí backup_restore_progress_trace rozšířené události sledovat průběh za provozu. Další informace o rozšířených událostech naleznete v tématu Přehled rozšířených událostí.

Výstraha

backup_restore_progress_trace Použití rozšířené události může způsobit problém s výkonem a spotřebovávat značné místo na disku. Používejte krátkou dobu, buďte opatrní a důkladně testujte před implementací v produkčním prostředí.

-- Create the backup_restore_progress_trace extended event session
CREATE EVENT SESSION [BackupRestoreTrace] ON SERVER
ADD EVENT sqlserver.backup_restore_progress_trace
ADD TARGET package0.event_file(SET filename=N'BackupRestoreTrace')
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=5 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO

-- Start the event session
ALTER EVENT SESSION [BackupRestoreTrace]
ON SERVER
STATE = start;
GO

-- Stop the event session
ALTER EVENT SESSION [BackupRestoreTrace]
ON SERVER
STATE = stop;
GO

Ukázkový výstup z rozšířené události

Snímek obrazovky s příkladem zálohování výstupu xevent Snímek obrazovky s příkladem zálohování výstupu xevent a pokračováním

Další informace o úlohách zálohování

Práce se záložními zařízeními a záložními médium

Vytváření záloh

Poznámka:

U částečných nebo kopírování záloh musíte použít příkaz Transact-SQL BACKUP s možností nebo PARTIAL parametremCOPY_ONLY.

Použití aplikace SSMS

Použití T-SQL

Obnovení záloh dat

Použití aplikace SSMS

Použití T-SQL

Obnovení transakčních protokolů (úplný model obnovení)

Použití aplikace SSMS

Použití jazyka T-SQL