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
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.
Bezpečnostní riziko obnovení záloh z nedůvěryhodných zdrojů
Tato část popisuje bezpečnostní riziko spojené s obnovením záloh z nedůvěryhodných zdrojů do libovolného prostředí SQL Serveru, včetně místního prostředí, azure SQL Managed Instance, SQL Serveru na virtuálních počítačích Azure a jakéhokoli jiného prostředí.
Proč na tom záleží
Obnovení záložních souborů SQL (.bak) představuje potenciální riziko, pokud záloha pochází z nedůvěryhodného zdroje. Bezpečnostní riziko je ještě horší, když prostředí SQL Serveru má více instancí, protože zvyšuje oblast hrozeb. I když zálohy, které zůstávají v rámci důvěryhodné hranice, nepředstavují žádný problém se zabezpečením, obnovení škodlivé zálohy může ohrozit zabezpečení celého prostředí.
Škodlivý .bak soubor může:
- Převezměte celou instanci SQL Serveru.
- Eskalujte oprávnění a získejte neoprávněný přístup k podkladovému hostiteli nebo virtuálnímu počítači.
K tomuto útoku dochází před spuštěním jakýchkoli ověřovacích skriptů nebo kontrol zabezpečení, což z něj dělá extrémně nebezpečné. Obnovení nedůvěryhodné zálohy odpovídá spouštění nedůvěryhodných aplikací na kritickém serveru nebo virtuálním počítači a zavedení libovolného spuštění kódu do vašeho prostředí.
Osvědčené postupy
Pokud chcete snížit hrozbu pro vaše prostředí SQL Serveru, postupujte podle těchto osvědčených postupů zabezpečení zálohování:
- Zacházejte s obnovením záloh jako s vysoce rizikovými operacemi.
- Omezte oblast služby hrozeb pomocí izolovaných instancí.
- Povolte pouze důvěryhodné zálohy: nikdy neobnovujte zálohy z neznámých nebo externích zdrojů.
- Povolit pouze zálohy, které zůstaly v rámci důvěryhodné hranice: zajistěte, aby zálohy pocházejí z důvěryhodné hranice.
- Nevyužívat bezpečnostní prvky pro usnadnění přístupu.
- Povolte auditování na úrovni serveru , abyste zachytili události zálohování a obnovení a snížili úniky auditů.
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
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
Definování logického zálohovacího zařízení pro diskový soubor (SQL Server)
Definování logického zálohovacího zařízení pro páskovou jednotku (SQL Server)
Zobrazení dat a souborů protokolu v zálohovací sadě (SQL Server)
Zobrazení vlastností a obsahu logického zálohovacího zařízení (SQL Server)
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
Použití správce prostředků k omezení využití procesoru pomocí komprese zálohování (Transact-SQL)
Zálohování transakčního protokolu při poškození databáze (SQL Server)
Povolení nebo zakázání kontrolních součtů zálohování během zálohování nebo obnovení (SQL Server)
Zadání zálohování nebo obnovení pro pokračování nebo zastavení po chybě
Obnovení záloh dat
Použití aplikace SSMS
Použití T-SQL
Obnovení zálohy databáze v rámci jednoduchého modelu obnovení (Transact-SQL)
obnovení souborů a skupin souborů přes existující soubory (SQL Server)
Obnovení transakčních protokolů (úplný model obnovení)
Použití aplikace SSMS
Obnovení databáze do označené transakce (SQL Server Management Studio)
Obnovení databáze SQL Serveru k určitému bodu v čase (model úplného obnovení)
Použití jazyka T-SQL
Související obsah
- Přehled zálohování (SQL Server)
- Přehled obnovení a obnovení (SQL Server)
- BACKUP (Transact-SQL)
- Příkazy RESTORE (Transact-SQL)
- Zálohování a obnovení databází analysis services
- Zálohování a obnovení katalogů a indexů Full-Text
- Zálohování a obnovení replikovaných databází
- Transakční protokol
- Modely obnovení (SQL Server)
- Sady médií, rodiny médií a zálohovací sady (SQL Server)