sql >> Databáze >  >> RDS >> PostgreSQL

Možnosti cloudového zálohování pro PostgreSQL

Tento blog byl aktualizován 27. 11. 2018 a 29. 11. 18, aby v něm byly provedeny změny podle doporučení našich úžasných komentátorů!

Stejně jako u jakékoli jiné složky podnikání jsou databáze extrémně důležité pro jejich vnitřní fungování.

Ať už se jedná o jádro podnikání nebo jen další součást, databáze by měly být pravidelně zálohovány a uloženy na bezpečných místech pro případnou budoucí obnovu.

Mám zálohovat do cloudu?

Obecným pravidlem je mít alespoň 3 kopie čehokoli cenného a tyto zálohy ukládat na různá místa. Zálohy na stejném disku jsou k ničemu, pokud samotný disk zemře, stejné zálohy hostitele jsou také ohroženy, pokud hostitel selže, a zálohy stejné budovy jsou také v nebezpečí, pokud budova shoří (drastické a nepravděpodobné, ale možné).

Cloudové zálohy nabízejí snadné řešení pro potřeby zálohování mimo pracoviště, aniž by bylo nutné instalovat nový hardware na sekundárním místě. Existuje mnoho různých cloudových služeb, které nabízejí úložiště záloh, a výběr té správné bude záviset na potřebách zálohování, požadavcích na velikost, ceně a zabezpečení.

Výhod cloudových záloh je mnoho, ale hlavně se točí kolem toho, že tyto zálohy jsou uloženy na jiném místě, než je hlavní databáze, což nám umožňuje mít záchrannou síť v případě obnovy po havárii. I když se nebudeme podrobně zabývat tím, jak nastavit každou z těchto možností zálohování, prozkoumáme několik různých nápadů a konfigurací záloh.

Ukládání záloh do cloudu má několik nevýhod, počínaje přenosem. Pokud jsou zálohy databáze extrémně velké, může samotné nahrání trvat dlouho a může dokonce zvýšit náklady, pokud cloudová služba zpoplatňuje přenos šířky pásma. Komprese se důrazně doporučuje pro udržení nízkého času a nákladů.

Zabezpečení by mohlo být dalším problémem s hostováním záloh v cloudu, zatímco některé společnosti mají přísná pravidla pro to, kde jsou jejich data uložena a existují. Pokud jde o zabezpečení, lze jakékoli zálohy před exportem do cloudové hostingové služby zašifrovat.

Možnosti cloudového zálohování

Existuje několik různých způsobů, jak vytvořit zálohy databáze pro PostgreSQL, a v závislosti na typu zálohy se bude lišit doba obnovy, velikost a možnosti infrastruktury. Vzhledem k tomu, že mnoho řešení cloudového úložiště jsou pouze úložiště s různými rozhraními API, lze s trochou skriptování vytvořit jakékoli chytré řešení zálohování.

Zálohy snímků

Snímky jsou zálohy, které mají kopii databáze PostgreSQL v určitém časovém okamžiku. Tyto zálohy se vytvářejí buď pomocí pg_dump, který jednoduše vypíše databázi do jednoho souboru, nebo zkopírováním základního datového adresáře pro PostgreSQL. Kteroukoli z nich lze komprimovat, zkopírovat na jiné disky a servery a zkopírovat do požadované možnosti cloudového úložiště.

Použití pg_dump s kompresí

pg_dump -Fc severalnines > severalnines.dmp

Záloha datového adresáře pomocí pg_basebackup

K vytvoření základní zálohy lze velmi snadno použít program pg_basebackup. Další informace o všech funkcích a jejich nastavení naleznete v oficiální dokumentaci pro verzi PostgreSQL, kterou používáte.

pg_basebackup --format=tar -z -D severalnines_basebackup

Amazon S3

S platformou Amazon AWS je S3 služba úložiště dat, kterou lze použít k ukládání záloh databáze. Zatímco zálohy lze nahrávat přes webové rozhraní, Amazon CLI (Command Line Interface) k tomu lze použít z příkazového řádku a pomocí skriptů pro automatizaci zálohování. Informace o AWS CLI naleznete zde. Pokud mají být zálohy uchovávány po velmi dlouhou dobu a doba obnovy není problémem, lze zálohy přenést do služby Amazon's Glacier, která poskytuje mnohem levnější dlouhodobé úložiště.

aws s3 cp severalnines.dmp s3://severalninesbucket/backups

Amazon má také různé regiony pro své služby po celém světě. Přestože mají dobrou historii provozuschopnosti, šíření kopií záloh do více oblastí zvyšuje možnosti obnovy po havárii a snižuje pravděpodobnost ztráty cenných dat.

Microsoft Azure Storage

Cloudová platforma společnosti Microsoft, Azure, má možnosti úložiště s vlastním rozhraním příkazového řádku, informace naleznete zde.

az storage blob upload --container-name severalnines --file severalnines.dmp --name severalnines_backup

Jakékoli jiné moderní služby cloudového úložiště by měly nabízet podobné nástroje pro kopírování záloh na jejich cloudové servery, podrobnosti najdete v jejich dokumentaci.

Pohotovostní zálohy

Někdy mohou být samotné zálohy extrémně velké, i když jsou komprimované, a nahrání denní nebo týdenní zálohy do cloudové služby může nepřicházet v úvahu kvůli rychlosti šířky pásma a/nebo nákladům. Získání zálohy do cloudu pro úschovu je tedy mnohem těžší.

Jedním ze způsobů, jak toho dosáhnout, je mít teplý nebo horký pohotovostní režim spuštěný v cloudovém virtuálním počítači, jako je instance EC2 společnosti Amazon, kde se jedná o přesnou kopii hlavní hlavní databáze a jediná data, která se odesílají do instance cloudu. je jakékoli změny, spíše než další kopie celé databáze. To by vyžadovalo přenos celé databáze najednou, ale poté je třeba přenést pouze změny.

Je ale záložní server skutečně zálohou? Pokud dojde k výpadku hlavní databáze, lze pohotovostní režim změnit na hlavní a aplikace na ni přesměrovat, pokud je však cílem mít zálohy pro určitý časový okamžik za poslední týden/měsíce, nebude to fungovat.

Chcete-li to opravit, lze udělat několik věcí. Samotnému pohotovostnímu režimu lze vynutit zpoždění, přičemž data zpracovávají například pouze jeden den. Dalším je vytváření záloh jedním z tradičních způsobů (pg_dump, kopie datového adresáře) v pohotovostním režimu cloudu, což znamená, že tyto zálohy nebude nutné přenášet přes síť, protože jsou vytvářeny na samotném cloudovém počítači. Převody v síti jsou obvykle rychlejší a levnější.

ClusterControl Backups and the Cloud

Somenines vytvořil ClusterControl, systém pro správu databází, který pomáhá spravovat mnoho různých databází včetně PostgreSQL. Je to dokonalá sada nástrojů pro každého správce databáze nebo systému, který umožňuje úplnou kontrolu a viditelnost jejich databází, a obsahuje velmi praktické funkce zálohování.

S ClusterControl lze zálohy PostgreSQL databází snadno spravovat, plánovat a nastavit tak, aby automaticky kopírovaly zálohy vytvořené do služeb „cloud storage“, včetně Amazon S3, Microsoft Azure a Google Cloud. Díky tomu není potřeba skriptovat vlastní nástroje pro nahrávání záloh do cloudu a také poskytuje příjemné uživatelské rozhraní pro zálohy obecně.

Zálohování našich databází by mělo probíhat vždy a jejich ukládání na druhém, třetím a čtvrtém místě je velmi dobrá a běžná praxe. Možnost cloudu zvyšuje možnosti obnovy po havárii a přináší další vrstvu stability back-endu pro podnikání, kde v mnoha případech, pokud zmizí databáze, zmizí i společnost. Zkoumání možností zálohování v cloudu dnes může zítra zabránit katastrofě.


  1. Použití strace jako nástroje pro ladění DG40DBC v systému Linux

  2. Jak zjistíte počet řádků pro všechny vaše tabulky v Postgresu

  3. Funkce LOWER() v Oracle

  4. Dopad události query_post_execution_showplan Extended v SQL Server 2012