sql >> Databáze >  >> NoSQL >> MongoDB

Ochrana vašich dat pomocí ClusterControl

V posledních čtyřech příspěvcích série blogů jsme se zabývali nasazením clusteringu/replikace (MySQL/Galera, MySQL Replication, MongoDB &PostgreSQL), správou a monitorováním vašich stávajících databází a clusterů, monitorováním výkonu a zdravím a v posledním příspěvku jak zajistit vysokou dostupnost vašeho nastavení prostřednictvím HAProxy a ProxySQL.

Takže teď, když máte své databáze spuštěné a vysoce dostupné, jak zajistíte, že máte zálohy svých dat?

Zálohy můžete použít pro více věcí:zotavení po havárii, poskytnutí produkčních dat pro testování proti vývoji nebo dokonce pro zřízení podřízeného uzlu. Tento poslední případ již ClusterControl pokrývá. Když do nastavení replikace přidáte nový (replikovaný) uzel, ClusterControl vytvoří zálohu/snímek hlavního uzlu a použije jej k vytvoření repliky. Může také použít existující zálohu k vytvoření repliky, v případě, že se chcete vyhnout této dodatečné zátěži na masteru. Poté, co byla záloha extrahována, připravena a databáze spuštěna a spuštěna, ClusterControl automaticky nastaví replikaci.

Vytvoření okamžité zálohy

Vytvoření zálohy je v podstatě stejné pro Galera, replikaci MySQL, PostgreSQL a MongoDB. Sekci zálohování najdete pod ClusterControl> Zálohování a ve výchozím nastavení uvidíte seznam vytvořených záloh clusteru (pokud existuje). Jinak by se zobrazil zástupný symbol pro vytvoření zálohy:

Odtud můžete kliknout na tlačítko "Vytvořit zálohu" a provést okamžitou zálohu nebo naplánovat novou zálohu:

Všechny vytvořené zálohy lze také nahrát do cloudu přepnutím „Nahrát zálohu do cloudu“, pokud zadáte funkční cloudové přihlašovací údaje. Ve výchozím nastavení budou všechny zálohy starší než 31 dní smazány (lze konfigurovat pomocí nastavení Uchování zálohy) nebo si můžete vybrat, zda je chcete uchovat navždy, nebo definovat vlastní období.

„Vytvořit zálohu“ a „Naplánovat zálohu“ sdílejí podobné možnosti s výjimkou plánovací části a možností přírůstkového zálohování. Proto se podrobněji podíváme na funkci Create Backup (aka okamžité zálohování).

Protože všechny tyto různé databáze mají různé nástroje pro zálohování, existuje samozřejmě určitý rozdíl v možnostech, které si můžete vybrat. Například s MySQL si můžete vybrat mezi mysqldump a xtrabackup (plný a přírůstkový). Pro MongoDB ClusterControl podporuje mongodump a mongodb-consistent-backup (beta), zatímco PostgreSQL, pg_dump a pg_basebackup jsou podporovány. Pokud si nejste jisti, který z nich vybrat pro MySQL, podívejte se na tento blog o rozdílech a případech použití pro mysqldump a xtrabackup.

Zálohování MySQL a Galera

Jak bylo zmíněno v předchozím odstavci, zálohy MySQL můžete provádět pomocí mysqldump nebo xtrabackup (úplné nebo přírůstkové). V průvodci "Create Backup" si můžete vybrat, na kterém hostiteli chcete spustit zálohu, umístění, kam chcete uložit soubory zálohy, a jeho adresář a konkrétní schémata (xtrabackup) nebo schémata a tabulky (mysqldump).

Pokud uzel, který zálohujete, přijímá (produkční) provoz a obáváte se, že zápisy na disk navíc budou rušivé, doporučuje se odeslat zálohy na hostitele ClusterControl výběrem možnosti „Uložit na řadiči“. To způsobí, že záloha bude streamovat soubory přes síť do hostitele ClusterControl a musíte se ujistit, že je na tomto uzlu dostatek místa a že je na hostiteli ClusterControl otevřen port pro streamování.

Existuje také několik dalších možností, zda chcete použít kompresi a úroveň komprese. Čím vyšší je úroveň komprese, tím menší bude velikost zálohy. Vyžaduje však vyšší využití procesoru pro proces komprese a dekomprese.

Pokud byste jako metodu zálohování zvolili xtrabackup, otevřelo by to další možnosti:desynchronizace, zámky zálohování, komprese a xtrabackup paralelní vlákna/gzip. Možnost desynchronizace je použitelná pouze pro desynchronizaci uzlu z clusteru Galera. Zálohovací zámky používají nový typ zámku MDL k blokování aktualizací netransakčních tabulek a příkazů DDL pro všechny tabulky, což je efektivnější pro zátěž specifickou pro InnoDB. Pokud používáte Galera Cluster, doporučujeme tuto možnost povolit.

Po naplánování okamžité zálohy můžete sledovat průběh zálohovací úlohy v Aktivita> Úlohy :

Po dokončení byste měli být schopni vidět nový záznam v seznamu záloh.

Zálohování PostgreSQL

Podobně jako u okamžitých záloh MySQL můžete spustit zálohu na databázi Postgres. U záloh Postgres jsou podporovány dvě metody zálohování - pg_dumpall nebo pg_basebackup. Pamatujte, že ClusterControl vždy provede úplnou zálohu bez ohledu na zvolenou metodu zálohování.

Tento aspekt jsme probrali v těchto podrobnostech v části Staňte se PostgreSQL DBA – Logické a fyzické zálohy PostgreSQL.

Zálohování MongoDB

Pro MongoDB podporuje ClusterControl standardní mongodump a mongodb-consistent-backup vyvinuté společností Percona. Posledně jmenovaný je stále v beta verzi, která poskytuje klastrově konzistentní zálohy MongoDB v určitém okamžiku vhodné pro nastavení sharded clusteru. Protože se shardovaný cluster MongoDB skládá z několika sad replik, sady replik konfigurace a serverů shard, je velmi obtížné vytvořit konzistentní zálohu pouze pomocí mongodump.

Všimněte si, že v průvodci nemusíte vybírat databázový uzel, který chcete zálohovat. ClusterControl automaticky vybere nejzdravější sekundární repliku jako záložní uzel. V opačném případě bude vybrán primární. Když je zálohování spuštěno, vybraný záložní uzel bude uzamčen, dokud se proces zálohování nedokončí.

Plánování záloh

Nyní, když jsme si pohráli s vytvářením okamžitých záloh, můžeme to nyní rozšířit naplánováním záloh.

Plánování je velmi snadné:můžete si vybrat, ve které dny se má záloha provést a v kterou dobu se má spustit.

Pro xtrabackup existuje další funkce:přírůstkové zálohy. Přírůstková záloha bude zálohovat pouze data, která se změnila od poslední zálohy. Samozřejmě, že přírůstkové zálohy jsou k ničemu, pokud by výchozím bodem nebyla plná záloha. Mezi dvěma úplnými zálohami můžete mít tolik přírůstkových záloh, kolik chcete. Jejich obnova však bude trvat déle.

Po naplánování by se úloha (úlohy) měla zobrazit na kartě „Naplánované zálohování“ a můžete je upravit kliknutím na tlačítko „Upravit“. Stejně jako u okamžitých záloh tyto úlohy naplánují vytvoření zálohy a vy můžete sledovat průběh na kartě Aktivita.

Seznam záloh

Seznam záloh najdete pod ClusterControl> Záloha a to vám poskytne přehled všech vytvořených záloh na úrovni clusteru. Kliknutím na každou položku se řádek rozbalí a zobrazí se další informace o záloze:

Každá záloha je doprovázena protokolem zálohování, když ClusterControl provedl úlohu, který je dostupný pod tlačítkem "Další akce".

Offsite Backup in Cloud

Vzhledem k tomu, že nyní máme mnoho záloh uložených buď na hostitelích databáze, nebo na hostiteli ClusterControl, chceme také zajistit, aby se neztratily v případě, že budeme čelit úplnému výpadku infrastruktury. (např. DC zapálené nebo zaplavené) ClusterControl vám proto umožňuje ukládat nebo kopírovat zálohy mimo pracoviště v cloudu. Podporované cloudové platformy jsou Amazon S3, Google Cloud Storage a Azure Cloud Storage.

Proces nahrávání proběhne ihned po úspěšném vytvoření zálohy (pokud přepnete „Nahrát zálohu do cloudu“) nebo můžete ručně kliknout na tlačítko ikony cloudu v seznamu záloh:

Vyberte přihlašovací údaje cloudu a podle toho určete umístění zálohy:

Obnovit a/nebo ověřit zálohu

Z rozhraní seznamu záloh můžete přímo obnovit zálohu na hostitele v clusteru kliknutím na tlačítko "Obnovit" pro konkrétní zálohu nebo kliknutím na tlačítko "Obnovit zálohu":

Jednou příjemnou funkcí je, že je schopen obnovit uzel nebo cluster pomocí úplných a přírůstkových záloh, protože bude sledovat poslední vytvořenou úplnou zálohu a spouští přírůstkovou zálohu odtud. Poté seskupí plnou zálohu se všemi přírůstkovými zálohami až do další plné zálohy. To vám umožní obnovit počínaje úplnou zálohou a použít na ni přírůstkové zálohy.

ClusterControl podporuje obnovu na existujícím databázovém uzlu nebo obnovu a ověření na novém samostatném hostiteli:

Tyto dvě možnosti jsou velmi podobné, až na to, že ta ověřovací má další možnosti pro informace o novém hostiteli. Pokud budete postupovat podle průvodce obnovením, budete muset zadat nového hostitele. Pokud je povolena možnost "Instalovat databázový software", ClusterControl odstraní jakoukoli existující instalaci MySQL na cílovém hostiteli a znovu nainstaluje databázový software se stejnou verzí, jakou má stávající server MySQL.

Jakmile bude záloha obnovena a ověřena, obdržíte oznámení o stavu obnovení a uzel se automaticky vypne.

Obnova v určitém okamžiku

Pro MySQL lze xtrabackup i mysqldump použít k provádění obnovy v určitém okamžiku a také k zajištění nového replikačního slave pro replikaci master-slave nebo Galera Cluster. Záloha kompatibilní s mysqldump PITR obsahuje jeden soubor výpisu s informacemi GTID, souborem binlog a pozicí. Pouze databázový uzel, který vytváří binární protokol, bude mít k dispozici možnost „PITR kompatibilní“:

Když je přepnuta možnost kompatibilní s PITR, pole databáze a tabulky jsou šedá, protože ClusterControl vždy provede úplnou zálohu všech databází, událostí, spouštěčů a rutin cílového serveru MySQL.

Nyní se obnovuje záloha. Pokud je záloha kompatibilní s PITR, zobrazí se možnost provést obnovu v určitém okamžiku. K tomu budete mít dvě možnosti – „Na základě času“ a „Na základě pozice“. Pro „Time Based“ můžete pouze zadat den a čas. Pro „Position Based“ můžete předat přesnou polohu, kam chcete obnovit. Je to přesnější způsob obnovení, i když možná budete muset získat pozici binlog pomocí nástroje mysqlbinlog. Více podrobností o obnově v určitém okamžiku lze nalézt v tomto blogu.

Šifrování zálohy

ClusterControl obecně podporuje šifrování záloh pro MySQL, MongoDB a PostgreSQL. Zálohy jsou v klidu šifrovány pomocí algoritmu AES-256 CBC. Automaticky vygenerovaný klíč bude uložen v konfiguračním souboru klastru pod /etc/cmon.d/cmon_X.cnf (kde X je ID klastru):

$ sudo grep backup_encryption_key /etc/cmon.d/cmon_1.cnf
backup_encryption_key='JevKc23MUIsiWLf2gJWq/IQ1BssGSM9wdVLb+gRGUv0='

Pokud cíl zálohy není místní, soubory zálohy se přenesou v zašifrovaném formátu. Tato funkce doplňuje zálohování mimo pracoviště v cloudu, kde nemáme úplný přístup k základnímu úložnému systému.

Poslední myšlenky

Ukázali jsme vám, jak si data zálohovat a jak je bezpečně uložit mimo web. Zotavení je vždy něco jiného. ClusterControl dokáže automaticky obnovit vaše databáze ze záloh vytvořených v minulosti, které jsou uloženy v prostorách nebo zkopírovány zpět z cloudu.

Je zřejmé, že zabezpečení vašich dat je více, zejména na straně zabezpečení vašich připojení. Tomu se budeme věnovat v příštím příspěvku na blogu!


  1. MongoDB $toInt

  2. Vytvořte databázový klastr v cloudu pomocí MongoDB Atlas

  3. Má MongoDB nativní rozhraní REST?

  4. Jak spustím Redis ve Windows 32bit?