Způsob zálohování databáze závisí třech faktorech: na infrastruktuře databáze, na logistice zálohování databáze a na požadovaných cílích RTO (recovery time objective, cíl doby obnovení) a RPO (recovery point objective, cíl bodu obnovení). Tento článek se zabývá nosnou infrastrukturou databáze.
Existují tři podoby infrastruktury databáze: software na vámi vlastněném serveru, PaaS (platforma jako služba) a služba serverless. Podívejme se na ně.
Tradiční databázový software
Ještě před několika lety se všechny databáze zajišťovaly na základě licence k produktu a jeho instalací na zvoleném serveru či virtuálním stroji. Byli jste zodpovědní za všechno, včetně zabezpečení a správy serveru, úložiště, samotné aplikace a (samozřejmě) zálohování databáze.
To představuje různé možnosti, včetně způsobů backupu. Některé možnosti jsou zcela nerelevantní, protože se databáze chovají specifickým způsobem, který ztěžuje jejich zálohování pomocí metod navržených pro nestrukturovaná data.
Následující tři koncepty platí pro téměř všechny tradičně zajišťované databáze:
1. Pohyblivý cíl
Data v databázi jsou obecně uložena v datových souborech, které lze vidět v souborovém systému nosného serveru či virtuálního stroje. Tyto soubory se neustále mění celou dobu, co se aktualizuje obsah databáze, což znamená, že je nelze zálohovat stejně prostým způsobem jako jiné soubory. Záloha by byla nepoužitelná.
2. Zálohování a obnovení pro daný okamžik
Většina podporovaných metod zálohování databáze vytvoří kopii databáze pro daný okamžik, což může být například každý den ve 22h. To znamená, že bude možné databázi obnovit jen k takovému okamžiku.
3. Posun vpřed či zpět v čase od daného okamžiku
Aby bylo možné dosáhnout lepšího parametru RPO, má většina databází protokol transakcí, který umožňuje znovu vykonat transakce po obnovení k definovanému okamžiku, aby došlo k posunu v čase směrem k okamžiku požadovanému.
Tento protokol lze také použít k návratu transakcí, pokud se databáze zhroutí a dostane se do nekonzistentního stavu.
Tyto tři obecné koncepty platí téměř pro všechny databáze běžící na serverech či virtuálních strojích, které spravujete, přestože u každého pravidla existují výjimky.
Datové soubory mají někdy podobu blokových zařízení a nikoli souborů a někdy se nemění ani v případě změn databáze. Klíčem k zajištění záloh libovolné podoby databází s tradiční nosnou infrastrukturou je pochopení, jak databáze řeší tři výše uvedené výzvy.
Nejtypičtější metodou zálohování tradičně zajišťované databáze je noční kopie, která může být úplná, nebo inkrementální, a k tomu průběžné kontinuální zálohování protokolů transakcí. Kopie umožní obnovit celou databázi a protokoly umožní zopakovat následující transakce až do bodu, kdy se něco pokazilo.
PaaS (platforma jako služba)
Druhou podobou infrastruktury databází je model PaaS (platforma jako služba), tedy model umožňující vidět jen aplikaci, přičemž přístup k nosné infrastruktuře je omezený či vůbec žádný.
Příkladem nabídky PaaS je Amazon RDS (Relational Database Service). Lze ji nakonfigurovat pro poskytování databází Oracle, MySQL, PostgreSQL, MariaDB a Aurora. Platforma Azure nabízí konfigurace PaaS pro SQL Server, MySQL, PostgreSQL a další.
Možnosti zálohování databází PaaS jsou obvykle celkem jednoduché. Každá nabídka PaaS poskytuje mechanismus, který podporuje zálohování a obnovení. Některé obsahují zálohování spouštěné automaticky každý den a obvykle vytvářejí kopii v objektovém úložišti dodavatele.
Jiné naopak vyžadují, abyste si spouštění zálohování nakonfigurovali sami. Z uvedeného důvodu tedy nelze obecně předpokládat, že se databáze PaaS automaticky zálohuje.
Ve skutečnosti byste naopak neměli vůbec předpokládat, že je jakákoli vaše infrastruktura zálohovaná. Prozkoumejte možnosti každé využívané databáze PaaS a uvidíte, jaké volby zálohování a obnovení nabízí.
Většina výchozích metod backupu pro databáze PaaS zkopíruje zálohy do stejného účtu a regionu, kde databáze běží, takže je dobré uvážit kopírování do jiného účtu a regionu. Je to dobrý nápad, který vás ochrání před nenadálými pohromami.
Databáze serverless
Databáze serverless posouvají princip PaaS o krok dále a osvobozují zákazníky od dalších nároků na správu, takže vytvářejí snáze použitelné řešení. Mezi příklady takových databází patří AWS DynamoDB, Aurora Serverless nebo Azure Cosmos DB.
V případě databáze serverless nemusíte konfigurovat nic. Doslova je můžete hned začít plnit daty. Výpočetní a úložné kapacity a rozhodnutí o rozdělení databází budou zajištěné automaticky. Je to tak „magické,“ že proto mnoho lidí předpokládá, že se zajišťují automaticky také zálohy, ale někdy to tak není.
Jako v případě databází PaaS jsou metody zálohování stanovené nabídkou příslušného poskytovatele databáze, takže jsou osvědčené postupy stejné: Zjistěte si nejlepší dostupné metody zálohování používané databáze a vhodně si vyberte. Zajistěte si také kopírování dat do jiného regionu a účtu.
Cloud není magie, ale určitě výrazně usnadňuje zálohování a obnovení databází. Lehkost, s jakou můžete vytvořit zálohu celé databáze (dokonce i rozdělené a sídlící na stovkách uzlů), je výrazně přínosnější, než nároky vznikající při správě všeho v tradičním prostředí.
Dejte si však pozor, abyste v důsledku snadnosti neztratili ostražitost a nestali se obětí svých mylných předpokladů. To vždy vede ke katastrofě.