Všechny společnosti v současné době mají (nebo by měly mít) plán obnovy po havárii (DRP), aby zabránily ztrátě dat v případě selhání; vytvořené podle přijatelného cíle bodu obnovy (RPO) pro podnik.
Zálohování je základním začátkem každého DRP, ale k zajištění použitelnosti zálohy nestačí jediná záloha. Nejlepším postupem je ukládat záložní soubory na tři různá místa, jedno uložené lokálně na databázovém serveru (pro rychlejší obnovu), druhé na centralizovaném zálohovacím serveru a poslední v cloudu. Pro tento poslední krok byste si měli vybrat stabilního a robustního poskytovatele cloudu, abyste měli jistotu, že jsou vaše data uložena správně a jsou kdykoli dostupná.
V tomto blogu se podíváme na jednoho z nejznámějších cloudových poskytovatelů, Google Cloud Platform (GCP), a na to, jak ji používat k ukládání záloh PostgreSQL v cloudu.
O službě Google Cloud
Google Cloud nabízí širokou škálu produktů pro vaši pracovní zátěž. Podívejme se na některé z nich a na to, jak souvisí s ukládáním záloh PostgreSQL v cloudu.
- Cloudové úložiště:Umožňuje celosvětové ukládání a získávání libovolného množství dat kdykoli. Cloud Storage můžete použít pro řadu scénářů včetně poskytování obsahu webových stránek, ukládání dat pro archivaci a obnovu po havárii nebo distribuci velkých datových objektů uživatelům prostřednictvím přímého stahování.
- Cloud SQL:Jedná se o plně spravovanou databázovou službu, která usnadňuje nastavení, údržbu, správu a správu vašich relačních databází PostgreSQL, MySQL a SQL Server v cloudu.
- Compute Engine:Poskytuje virtuální stroje běžící v Google Cloud s podporou škálování od jednotlivých instancí až po globální cloud computing s vyváženou zátěží. Virtuální počítače Compute Engine se spouštějí rychle, přicházejí s vysoce výkonnými možnostmi trvalého a místního disku a poskytují konzistentní výkon.
Ukládání záloh ve službě Google Cloud
Pokud svou databázi PostgreSQL provozujete na Google Cloud s Cloud SQL, můžete ji zálohovat přímo z Google Cloud Platform, není však nutné ji spouštět zde pro ukládání záloh PostgreSQL.
Google Cloud Storage
Podobně jako u známého produktu Amazon S3, pokud svou databázi PostgreSQL neprovozujete s Cloud SQL, jde o nejběžněji používanou možnost ukládání záloh nebo souborů v Google Cloud. Je přístupný z Google Cloud Platform, v sekci Začínáme nebo v nabídce Úložiště vlevo. S cloudovým úložištěm sem můžete dokonce snadno přenést svůj obsah S3 pomocí funkce Přenos.
Jak používat Google Cloud Storage
Nejprve musíte vytvořit nový segment pro ukládání dat, takže přejděte na Google Cloud Platform -> Úložiště -> Vytvořit segment
V prvním kroku stačí přidat nový název segmentu.
V dalším kroku můžete určit typ umístění (multi-region ve výchozím nastavení) a místo umístění.
Potom můžete změnit třídu úložiště ze standardní (výchozí možnost) na blízkou nebo studenou linii.
A pak můžete změnit přístup k ovládání.
Nakonec máte některá volitelná nastavení, jako je šifrování nebo zásady uchovávání.
Nyní máte vytvořený nový kbelík, uvidíme, jak jej použít.
Použití nástroje GSutil
GSutil je aplikace Python, která umožňuje přístup ke cloudovému úložišti z příkazového řádku. Umožňuje vám provádět různé úlohy správy bucketů a objektů. Podívejme se, jak jej nainstalovat na CentOS 7 a jak pomocí něj nahrát zálohu.
Stáhnout Cloud SDK:
$ curl https://sdk.cloud.google.com | bash
Restartujte svůj shell:
$ exec -l $SHELL
Spusťte gcloud init a nakonfigurujte nástroj:
$ gcloud init
Tento příkaz vás požádá, abyste se přihlásili ke svému účtu Google Cloud přístupem na adresu URL a přidáním ověřovacího kódu.
Nyní máte nástroj nainstalovaný a nakonfigurovaný, pojďme nahrát zálohu do bucketu.
Nejprve se podívejme na naše vytvořené segmenty:
[[email protected] ~]# gsutil ls
gs://pgbackups1/
A chcete-li zkopírovat zálohu PostgreSQL (nebo jiný soubor), spusťte:
[[email protected] ~]# gsutil cp /root/backups/BACKUP-3/base.tar.gz gs://pgbackups1/new_backup/
Copying file:///root/backups/BACKUP-3/base.tar.gz [Content-Type=application/x-tar]...
| [1 files][ 4.9 MiB/ 4.9 MiB]
Operation completed over 1 objects/4.9 MiB.
Cílový segment musí existovat.
Poté můžete vypsat obsah adresáře new_backup a zkontrolovat nahraný soubor:
[[email protected] ~]# gsutil ls -r gs://pgbackups1/new_backup/*
gs://pgbackups1/new_backup/
gs://pgbackups1/new_backup/base.tar.gz
Další informace o použití GSutil naleznete v oficiální dokumentaci.
Google Cloud SQL
Pokud chcete centralizovat veškeré prostředí (databázi + zálohy) do Google Cloud, máte k dispozici tento produkt Cloud SQL. Tímto způsobem budete mít svou PostgreSQL databázi spuštěnou na Google Cloud a můžete také spravovat zálohy ze stejné platformy. Je přístupný z platformy Google Cloud Platform v části Začínáme nebo v levé nabídce Úložiště.
Jak používat Google Cloud SQL
Chcete-li vytvořit novou instanci PostgreSQL, přejděte na Google Cloud Platform -> SQL -> Vytvořit instanci
Zde si jako databázový stroj můžete vybrat mezi MySQL a PostgreSQL. Pro tento blog vytvoříme instanci PostgreSQL.
Nyní je třeba přidat ID instance, heslo, umístění a PostgreSQL verze (9.6 nebo 11).
Máte také některé možnosti konfigurace, jako je povolení veřejné IP adresy, Typ počítače a úložiště, zálohy atd.
Když je instance Cloud SQL vytvořena, můžete ji vybrat a uvidíte přehled této nové instance.
A můžete přejít do sekce Zálohy a spravovat zálohy PostgreSQL.
Pro snížení nákladů na úložiště fungují zálohy postupně. Každá záloha ukládá pouze změny vašich dat od předchozí zálohy.
Google Cloud Compute Engine
Podobně jako u Amazon EC2 je tento způsob ukládání informací v cloudu dražší a časově náročnější než Cloud Storage, ale budete mít plnou kontrolu nad prostředím úložiště záloh. Je také přístupná z Google Cloud Platform v sekci Začínáme nebo v levé nabídce Výpočet.
Jak používat Google Cloud Compute Engine
Chcete-li vytvořit nový virtuální počítač, přejděte na Google Cloud Platform -> Compute Engine -> Vytvořit instanci
Zde musíte přidat název instance, oblast a zónu, kam chcete vytvořit to. Také musíte určit konfiguraci počítače podle vašich požadavků na hardware a využití a velikost disku a operační systém, který se má použít pro nový virtuální počítač.
Když je instance připravena, můžete zálohy ukládat například sem , odesílání přes SSH nebo FTP pomocí externí IP adresy. Podívejme se na příklad s Rsync a další s příkazem SCP Linux.
Chcete-li se k novému virtuálnímu počítači připojit přes SSH, ujistěte se, že jste do konfigurace virtuálního stroje přidali klíč SSH.
[[email protected] ~]# rsync -avzP -e "ssh -i /home/sinsausti/.ssh/id_rsa" /root/backups/BACKUP-3/base.tar.gz [email protected]:/home/sinsausti/pgbackups/
sending incremental file list
base.tar.gz
5,155,420 100% 1.86MB/s 0:00:02 (xfr#1, to-chk=0/1)
sent 4,719,597 bytes received 35 bytes 629,284.27 bytes/sec
total size is 5,155,420 speedup is 1.09
[[email protected] ~]#
[[email protected] ~]# scp -i /home/sinsausti/.ssh/id_rsa /root/backups/BACKUP-5/base.tar.gz [email protected]:/home/sinsausti/pgbackups/
base.tar.gz 100% 2905KB 968.2KB/s 00:03
[[email protected] ~]#
Můžete to snadno vložit do skriptu a provést proces automatického zálohování nebo použít tento produkt ke správě záloh s externím systémem, jako je ClusterControl.
Správa záloh pomocí ClusterControl
Stejným způsobem, jakým můžete centralizovat správu databáze i zálohování ze stejné platformy pomocí Cloud SQL, můžete ClusterControl použít pro několik úloh správy souvisejících s vaší PostgreSQL databází.
ClusterControl je komplexní systém pro správu databází s otevřeným zdrojovým kódem, který automatizuje funkce nasazení a správy, stejně jako monitorování stavu a výkonu. ClusterControl podporuje nasazení, správu, monitorování a škálování pro různé databázové technologie a prostředí. Můžete tedy například vytvořit naši instanci virtuálního stroje na Google Cloud a nasadit/importovat naši databázovou službu pomocí ClusterControl.
Vytvoření zálohy
Pro tento úkol přejděte do ClusterControl -> Vyberte Cluster -> Záloha -> Vytvořit zálohu.
Můžete vytvořit novou zálohu nebo nakonfigurovat plánovanou. V našem příkladu okamžitě vytvoříme jedinou zálohu.
Musíte zvolit jednu metodu, server, ze kterého bude záloha převzata a kam chcete zálohu uložit. Naši zálohu můžete také nahrát do cloudu (AWS, Google nebo Azure) povolením odpovídajícího tlačítka.
Poté zadejte použití komprese, úroveň komprese, šifrování a dobu uchování pro vaši zálohu.
Pokud jste povolili možnost nahrávání zálohy do cloudu, zobrazí se sekce k určení poskytovatele cloudu (v tomto případě Google Cloud) a přihlašovacích údajů (ClusterControl -> Integrations -> Cloud Providers). Pro Google Cloud používá cloudové úložiště, takže musíte vybrat segment nebo dokonce vytvořit nový pro ukládání záloh.
V části zálohování můžete vidět průběh zálohování a informace, jako je metoda, velikost, umístění a další.
Závěr
Google Cloud může být dobrou volbou pro ukládání záloh PostgreSQL a nabízí různé produkty, jak to udělat. Není však nutné, aby tam vaše PostgreSQL databáze běžely, protože je můžete použít pouze jako úložiště.
Nástroj GSutil je pěkný produkt pro správu dat cloudového úložiště z příkazového řádku, je snadno použitelný a rychlý.
Můžete také zkombinovat Google Cloud a ClusterControl a zlepšit tak své prostředí s vysokou dostupností PostgreSQL a monitorovací systém. Pokud se chcete dozvědět více o PostgreSQL na Google Cloud, můžete se podívat na náš blogový příspěvek s hlubokým ponorem.