Pokud jde o zálohování a archivaci dat, IT oddělení jsou často ve stresu, aby splnila přísné smlouvy o úrovni služeb a zajistila robustnější postupy zálohování, které by minimalizovaly prostoje, urychlily proces zálohování a náklady méně a splňují přísné bezpečnostní požadavky.
Existuje několik způsobů, jak zálohovat databázi MySQL, ale tyto metody můžeme rozdělit do dvou skupin – logické a fyzické.
Logické zálohy obsahují data, která jsou exportována pomocí příkazů SQL a uložena do souboru. Může to být například sada SQL příkazů, které po provedení povedou k obnovení obsahu databáze. S určitými úpravami syntaxe výstupního souboru můžete zálohu uložit do souborů CSV.
Logické zálohy se provádějí snadno, pouze s jedním řádkem můžete zálohovat všechny své tabulky, databáze nebo všechny databáze mysql v instanci.
Logické zálohy mají bohužel mnoho omezení. Obvykle jsou pomalejší než fyzické. To je způsobeno režií potřebnou k provádění příkazů SQL k získání dat a následnému provádění další sady příkazů SQL k získání dat zpět do databáze. Jsou méně flexibilní, pokud nenapíšete komplexní zálohovací úlohy, které by zahrnovaly více kroků. Nefunguje dobře v paralelním prostředí, poskytuje méně zabezpečení a tak dále a tak dále.
Fyzické zálohy ve světě MySQL
MySQL nepřichází s online fyzickým zálohováním pro komunitní verzi. Můžete buď zaplatit za verzi Enterprise, nebo použít nástroj třetí strany. Nejoblíbenějším nástrojem třetí strany na trhu je XtraBackup. Ty, které porovnáme v tomto článku na blogu.
Percona XtraBackup je velmi populární software pro zálohování MySQL/MariaDB s otevřeným zdrojovým kódem, který provádí neblokující zálohy pro databáze InnoDB a XtraDB. Spadá do kategorie fyzické zálohy, která se skládá z přesných kopií datového adresáře MySQL a souborů pod ním.
Jednou z největších výhod XtraBackup je, že během procesu zálohování nezamyká vaši databázi. U velkých databází (100+ GB) poskytuje mnohem kratší dobu obnovy ve srovnání s mysqldump. Proces obnovy zahrnuje přípravu dat MySQL ze záložních souborů před jejich nahrazením nebo přepnutím do aktuálního datového adresáře v cílovém uzlu.
Percona XtraBackup funguje tak, že si při spuštění zapamatuje pořadové číslo protokolu (LSN) a poté zkopíruje datové soubory na jiné místo. Kopírování dat nějakou dobu trvá, a pokud se soubory mění, odrážejí stav databáze v různých okamžicích. Současně XtraBackup spouští proces na pozadí, který dohlíží na soubory protokolu transakcí (aka redo log) a kopíruje z něj změny. To je třeba provádět neustále, protože protokoly transakcí jsou zapisovány způsobem cyklicky a lze je po chvíli znovu použít. XtraBackup potřebuje záznamy protokolu transakcí pro každou změnu v datových souborech od zahájení provádění.
Pomocí tohoto nástroje můžete:
- Vytvářejte horké zálohy InnoDB, které se dokončí rychle a spolehlivě, bez pozastavení databáze nebo zvýšení zátěže serveru
- Vytvářejte přírůstkové zálohy
- Přesouvejte tabulky mezi servery MySQL online
- Snadné vytváření nových replikačních slave MySQL
- Streamujte komprimované zálohy MySQL na jiný server
- Ušetřete místo na disku a šířku pásma sítě
MySQL Enterprise Backup poskytuje horké, online, neblokující zálohování na více platformách. Není to bezplatný nástroj pro zálohování, ale nabízí spoustu funkcí. Standardní cena licence je 5 000 USD (ale může se lišit podle vaší smlouvy se společností Oracle.)
Platformy podporované procesem zálohování
MySQL Enterprise
Může běžet na systémech Linux, Windows, Mac a Solaris. Co je podstatné, může také ukládat zálohu na pásku, což je obvykle levnější řešení než zápis na disky. Přímý zápis na pásku podporuje integraci s Veritas Netbackup, Tivoli Storage Manager a EMC NetWorker.
XtraBackup
XtraBackup může běžet pouze na platformě Linux, což může být nepochybně stopkou pro ty, kteří běží na Windows. Řešením je možná replikace na slave běžící na Linuxu a běžící zálohování odtud.
Hlavní rozdíly v procesu zálohování
Zálohování MySQL Enterprise Backup poskytuje bohatou sadu funkcí a funkcí pro zálohování a obnovu, včetně významných vylepšení výkonu oproti stávajícím metodám zálohování MySQL.
Oracle ukazuje, že zálohování Enterprise je dokonce 49x rychlejší než mysqldump. To se samozřejmě může lišit v závislosti na vašich datech, existuje však mnoho funkcí pro zlepšení procesu zálohování. Paralelní zálohování je rozhodně jedním z největších rozdílů mezi mysqldump a Enterprise zálohováním. Zvyšuje výkon vícevláknovým zpracováním. Nejzajímavější funkcí je však komprese.
--compress
Vytváří zálohu v komprimovaném formátu. Pro běžné zálohování jsou ze všech úložných enginů podporovaných MySQL komprimovány pouze datové soubory formátu InnoDB, které po komprimaci nesou příponu .ibz. Podobně u zálohy s jedním obrazem jsou komprimovány pouze datové soubory ve formátu InnoDB uvnitř obrazu zálohy. Binární protokol a soubory protokolu přenosu jsou při zahrnutí do komprimované zálohy komprimovány a uloženy s příponou .bz.
-compress-method=zlib,lz4(default), lzma, punch-hole
--compress-level=LEVEL(0-9)
--include-tables=REGEXP
Zálohy MySQL s ClusterControl
ClusterControl vám umožňuje naplánovat zálohování pomocí XtraBackup a mysqldump. Může ukládat záložní soubory lokálně v uzlu, kde je záloha pořízena, nebo mohou být záložní soubory také streamovány do uzlu řadiče a komprimovány za běhu. Nepodporuje zálohování MySQL Enterprise, ale s rozšířenými funkcemi mysqldump a XtraBackup to může být dobrá volba.
ClusterControl je komplexní systém správy databází s otevřeným zdrojovým kódem pro uživatele se smíšenými prostředími. Poskytuje pokročilé funkce správy zálohování pro MySQL nebo MariaDB.
S ClusterControl můžete:
- Vytvořte zásady zálohování
- Sledujte stav zálohování, provádění a servery bez záloh
- Provádění záloh a obnovení (včetně obnovení v určitém okamžiku)
- Řízení uchovávání záloh
- Ukládání záloh do cloudového úložiště
- Ověřit zálohy (úplný test s obnovením na samostatném serveru)
- Šifrovat zálohy
- Komprimovat zálohy
- A mnoho dalších
Závěr
Jako správce databází se musíte ujistit, že databáze jsou pravidelně zálohovány a že jsou zavedeny a testovány vhodné postupy obnovy. Percona XtraBackup i MySQL Enterprise Backup poskytují správcům databází vysoce výkonné online zálohovací řešení s technologií komprese dat a šifrování, která zaručí, že vaše data budou chráněna v případě výpadku nebo výpadku
Zálohy by měly být naplánovány podle požadavku na obnovení. Ztráta dat může být úplná nebo částečná. Například nemusíte vždy obnovovat celá data. V některých případech můžete chtít provést částečné obnovení obnovením chybějících tabulek nebo řádků. Se sadou funkcí dosahu by obě řešení byla skvělou náhradou mysqldump, což je stále velmi populární metoda zálohování. Mít mysqldump je také důležité pro částečnou obnovu, kde lze poškozené databáze opravit analýzou obsahu výpisu. Binární protokoly nám umožňují dosáhnout obnovení v určitém okamžiku, např. až doprava před výpadkem serveru MySQL.
Toto je vše pro první část, v další části otestujeme výkon obou řešení a spustíme některé scénáře zálohování a obnovy v reálném případě.