Informace jsou jedním z nejcennějších aktiv ve společnosti a je samozřejmé, že člověk by měl mít plán obnovy po havárii (DRP), aby se zabránilo ztrátě dat v případě nehody nebo selhání hardwaru. Záloha je nejjednodušší formou DR. Nemusí to vždy stačit k zaručení přijatelného cíle bodu obnovení (RPO), ale je to dobrý první přístup.
Ať už se jedná o 24x7 vysoce zatížený server nebo prostředí s nízkým objemem transakcí, budete muset zajistit, aby zálohování bylo bezproblémové, aniž by došlo k narušení výkonu serveru v produkčním prostředí.
Pokud mluvíme o TimescaleDB, existují různé typy záloh pro tento nový engine pro data časových řad. Typ zálohy, který bychom měli použít, závisí na mnoha faktorech, jako je prostředí, infrastruktura, zatížení atd.
V tomto blogu se podíváme na tyto různé typy záloh, které jsou k dispozici, a na to, jak nám ClusterControl může pomoci centralizovat naši správu záloh pro TimescaleDB.
Typy zálohování
Existují různé typy záloh pro databáze. Podívejme se na každou z nich podrobně.
- Logické:Záloha je uložena ve formátu čitelném pro člověka, jako je SQL.
- Fyzická:Záloha obsahuje binární data.
- Plná/Přírůstková/Diferenciální:Definice těchto tří typů záloh je implicitní v názvu. Úplná záloha je úplná kopie všech vašich dat. Přírůstková záloha zálohuje pouze data, která se změnila od předchozí zálohy, a rozdílová záloha obsahuje pouze data, která se změnila od poslední provedené úplné zálohy. Přírůstkové a rozdílové zálohy byly zavedeny jako způsob, jak snížit množství času a využití místa na disku, které je zapotřebí k provedení úplné zálohy.
- Kompatibilní se zotavením Point In Time:PITR Zahrnuje obnovení databáze v jakémkoli daném okamžiku v minulosti. Abychom to mohli udělat, budeme muset obnovit plnou zálohu a poté použít všechny změny, ke kterým došlo po zálohování až do doby těsně před selháním.
Funkce správy zálohování ClusterControl
Podívejme se, jak nám ClusterControl může pomoci spravovat různé typy záloh.
Vytvoření zálohy
Pro tento úkol přejděte na ClusterControl -> Vyberte cluster TimescaleDB -> Záloha -> Vytvořit zálohu .
Můžeme vytvořit novou zálohu nebo nakonfigurovat plánovanou. V našem příkladu okamžitě vytvoříme jedinou zálohu.
Zde máme jednu metodu pro každý typ zálohy, kterou jsme zmínili dříve.
Typ zálohy | Nástroj | Definice |
---|---|---|
Logické | pg_dumpall | Je to nástroj pro zápis všech databází TimescaleDB clusteru do jednoho souboru skriptu. Soubor skriptu obsahuje příkazy SQL, které lze použít k obnovení databází. |
Fyzické | pg_basebackup | Používá se k vytvoření binární kopie souborů databázového clusteru a zároveň zajišťuje, že se systém automaticky přepne do režimu zálohování a vypne se z něj. Zálohy se vždy provádějí z celého databázového clusteru běžícího databázového clusteru TimescaleDB. Ty jsou přijímány bez ovlivnění ostatních klientů do databáze. |
Plná/Incr/Diff | pgbackrest | Jedná se o jednoduché, spolehlivé řešení zálohování a obnovy, které lze bezproblémově škálovat na největší databáze a pracovní zatížení pomocí algoritmů, které jsou optimalizovány pro specifické požadavky databáze. Jednou z nejdůležitějších funkcí je podpora pro úplné, přírůstkové a rozdílové zálohování. |
PITR | pg_basebackup+WALs | K vytvoření zálohy kompatibilní s PITR použije ClusterControl pg_basebackup a soubory WAL, aby bylo možné obnovit databázi kdykoli v minulosti. |
Musíme zvolit jednu metodu, server, ze kterého se bude záloha přebírat, a kam chceme zálohu uložit. Můžeme také nahrát naši zálohu do cloudu (AWS, Google nebo Azure) povolením odpovídajícího tlačítka.
Mějte na paměti, že pokud chcete vytvořit zálohu kompatibilní s PITR, musíme v tomto kroku použít pg_basebackup a musíme vzít zálohu z hlavního uzlu.
Poté určíme použití komprese, šifrování a uchování naší zálohy.
V sekci zálohování můžeme vidět průběh zálohování a informace, jako je metoda, velikost, umístění a další.
Povolení bodové obnovy
Pokud chceme používat funkci PITR, musíme mít povolenou archivaci WAL. Za tímto účelem můžeme přejít na ClusterControl -> Vybrat klastr TimescaleDB -> Akce uzlů -> Povolit archivaci WAL , nebo prostě přejděte na ClusterControl -> Vyberte TimescaleDB Cluster -> Záloha -> Nastavení a povolte možnost „Povolit obnovu bodu v čase (archivace WAL) ” jak uvidíme na následujícím obrázku.
Musíme mít na paměti, že abychom povolili archivaci WAL, musíme restartovat naši databázi. ClusterControl to může udělat i za nás.
Kromě možností společných pro všechny zálohy, jako je „Adresář záloh “ a „Doba uchování zálohy “, zde můžeme také specifikovat dobu uchování WAL. Ve výchozím nastavení je 0, což znamená navždy.
Abychom potvrdili, že máme povolenou archivaci WAL, můžeme vybrat náš hlavní uzel v ClusterControl -> Select TimescaleDB Cluster -> Nodes a měli bychom vidět zprávu WAL Archiving Enabled, jak můžeme vidět na následujícím obrázku.
Obnovení zálohy
Jakmile je záloha dokončena, můžeme ji obnovit pomocí ClusterControl. Za tímto účelem v naší sekci zálohování (ClusterControl -> Select TimescaleDB Cluster -> Backup ), můžeme zvolit "Obnovit zálohu" nebo přímo "Obnovit" u zálohy, kterou chceme obnovit.
Máme tři možnosti, jak zálohu obnovit. Můžeme obnovit zálohu ve stávajícím databázovém uzlu, obnovit a ověřit zálohu na samostatném hostiteli nebo vytvořit nový cluster ze zálohy.
Pokud se pokoušíme obnovit zálohu kompatibilní s PITR, musíme také určit čas.
Data budou obnovena tak, jak byla v určený čas. Vezměte v úvahu, že se používá časové pásmo UTC a že naše služba TimescaleDB v hlavním serveru bude restartována.
Průběh obnovy můžeme sledovat v sekci Aktivita v našem ClusterControl.
Automatické ověření zálohy
Záloha není zálohou, pokud ji nelze obnovit. Ověřování záloh je něco, co mnoho lidí obvykle zanedbává. Podívejme se, jak může ClusterControl automatizovat ověřování záloh TimescaleDB a pomoci vyhnout se jakýmkoli překvapením.
V ClusterControl vyberte svůj cluster a přejděte na „Záloha “ a poté vyberte „Vytvořit zálohu “.
Pro plánované zálohy je k dispozici funkce automatického ověření zálohy. Zvolme tedy „Naplánovat zálohování “.
Při plánování zálohování musíme kromě výběru běžných možností, jako je metoda nebo úložiště, určit také plán/frekvenci.
V dalším kroku můžeme naši zálohu zkomprimovat a zašifrovat a určit dobu uchování. Zde také máme „Ověřit zálohu ” funkce.
K použití této funkce potřebujeme vyhrazeného hostitele (nebo virtuálního počítače), který není součástí clusteru.
ClusterControl nainstaluje software a obnoví zálohu v tomto hostiteli. Po obnovení můžeme v sekci ClusterControl Backup vidět ikonu ověření.
Závěr
V dnešní době jsou zálohy povinné v jakémkoli prostředí. Pomáhají vám chránit vaše data. Přírůstkové zálohy mohou pomoci snížit množství času a úložného prostoru použitého pro proces zálohování. Transakční protokoly jsou důležité pro Point-in-Time-Recovery. ClusterControl může pomoci zautomatizovat proces zálohování vašich databází TimescaleDB a v případě selhání je obnovit pomocí několika kliknutí. Také můžete minimalizovat RPO pomocí zálohy kompatibilní s PITR a zlepšit svůj plán obnovy po havárii.