sql >> Databasteknik >  >> RDS >> PostgreSQL

Tips för att lagra PostgreSQL-säkerhetskopior på Google Cloud (GCP)

Alla företag har nuförtiden (eller borde ha) en Disaster Recovery Plan (DRP) för att förhindra dataförlust i händelse av fel; byggd enligt ett acceptabelt Recovery Point Objective (RPO) för verksamheten.

En säkerhetskopia är en grundläggande start i alla DRP, men för att garantera säkerhetskopieringens användbarhet räcker det inte med en enda säkerhetskopia. Den bästa praxisen är att lagra säkerhetskopieringsfilerna på tre olika platser, en lagrad lokalt på databasservern (för snabbare återställning), en annan på en centraliserad backupserver och den sista i molnet. För det sista steget bör du välja en stabil och robust molnleverantör för att se till att din data lagras korrekt och är tillgänglig när som helst.

I den här bloggen kommer vi att ta en titt på en av de mest kända molnleverantörerna, Google Cloud Platform (GCP) och hur du använder den för att lagra dina PostgreSQL-säkerhetskopior i molnet.

Om Google Cloud

Google Cloud erbjuder ett brett utbud av produkter för din arbetsbörda. Låt oss titta på några av dem och hur de är relaterade till lagring av PostgreSQL-säkerhetskopior i molnet.

  • Molnlagring:Det möjliggör världsomspännande lagring och hämtning av vilken mängd data som helst när som helst. Du kan använda Cloud Storage för en rad scenarier, inklusive servering av webbplatsinnehåll, lagring av data för arkivering och katastrofåterställning eller distribuering av stora dataobjekt till användare via direkt nedladdning.
  • Cloud SQL:Det är en fullständigt hanterad databastjänst som gör det enkelt att konfigurera, underhålla, hantera och administrera dina relationella PostgreSQL-, MySQL- och SQL Server-databaser i molnet.
  • Compute Engine:Den levererar virtuella maskiner som körs i Google Cloud med stöd för skalning från enstaka instanser till global, belastningsbalanserad molnberäkning. Compute Engines virtuella datorer startar snabbt, kommer med högpresterande beständiga och lokala diskalternativ och levererar konsekvent prestanda.

Lagra säkerhetskopior i Google Cloud

Om du kör din PostgreSQL-databas på Google Cloud med Cloud SQL kan du säkerhetskopiera den direkt från Google Cloud Platform, men det är inte nödvändigt att köra den här för att lagra dina PostgreSQL-säkerhetskopior.

Google Cloud Storage

I likhet med den välkända Amazon S3-produkten, om du inte kör din PostgreSQL-databas med Cloud SQL, är detta det vanligaste alternativet för att lagra säkerhetskopior eller filer i Google Cloud. Den är tillgänglig från Google Cloud Platform, i avsnittet Komma igång eller under menyn Lagring till vänster. Med Cloud Storage kan du till och med enkelt överföra ditt S3-innehåll hit med överföringsfunktionen.

Hur man använder Google Cloud Storage

Först måste du skapa en ny Bucket för att lagra dina data, så gå till Google Cloud Platform -> Lagring -> Skapa Bucket

I det första steget behöver du bara lägga till ett nytt hinknamn.

I nästa steg kan du ange platstypen (multiregion som standard) och platsplatsen.

Då kan du ändra lagringsklassen från standard (standardalternativ) till nearline eller coldline.

Och sedan kan du ändra kontrollåtkomsten.

Äntligen har du några valfria inställningar som kryptering eller lagringspolicy.

Nu har du skapat din nya hink, vi kommer att se hur du använder den.

Använda GSutil-verktyget

GSutil är en Python-applikation som låter dig komma åt Cloud Storage från kommandoraden. Det låter dig utföra olika hanteringsuppgifter för hink och objekt. Låt oss se hur du installerar det på CentOS 7 och hur du laddar upp en säkerhetskopia med det.

Ladda ner Cloud SDK:

$ curl https://sdk.cloud.google.com | bash

Starta om skalet:

$ exec -l $SHELL

Kör gcloud init och konfigurera verktyget:

$ gcloud init

Detta kommando ber dig logga in på ditt Google Cloud-konto genom att komma åt en URL och lägga till en autentiseringskod.

Nu har du verktyget installerat och konfigurerat, låt oss ladda upp en säkerhetskopia till hinken.

Låt oss först kolla våra skapade hinkar:

[[email protected] ~]# gsutil ls

gs://pgbackups1/

Och för att kopiera din PostgreSQL-säkerhetskopia (eller en annan fil), kör:

[[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.

Destinationsbehållaren måste finnas.

Och sedan kan du lista innehållet i katalogen new_backup för att kontrollera filen som laddats upp:

[[email protected] ~]# gsutil ls -r gs://pgbackups1/new_backup/*

gs://pgbackups1/new_backup/

gs://pgbackups1/new_backup/base.tar.gz

För mer information om GSutil-användningen kan du kontrollera den officiella dokumentationen.

Google Cloud SQL

Om du vill centralisera hela miljön (databas + säkerhetskopior) till Google Cloud, har du denna Cloud SQL-produkt tillgänglig. På så sätt kommer du att ha din PostgreSQL-databas igång på Google Cloud och du kan även hantera säkerhetskopiorna från samma plattform. Den är tillgänglig från Google Cloud Platform, i avsnittet Komma igång eller under menyn Lagring till vänster.

Hur man använder Google Cloud SQL

För att skapa en ny PostgreSQL-instans, gå till Google Cloud Platform -> SQL -> Skapa instans

Här kan du välja mellan MySQL och PostgreSQL som databasmotor. För den här bloggen, låt oss skapa en PostgreSQL-instans.

Nu måste du lägga till ett instans-ID, lösenord, plats och PostgreSQL version (9.6 eller 11).

Du har också några konfigurationsalternativ, som att aktivera offentlig IP-adress, maskintyp och lagring, och säkerhetskopior, etc. 

När Cloud SQL-instansen skapas kan du välja den och du kommer att se en översikt över denna nya instans.

Och du kan gå till avsnittet Säkerhetskopiering för att hantera dina PostgreSQL-säkerhetskopior.

För att minska lagringskostnaderna fungerar säkerhetskopieringar stegvis. Varje säkerhetskopia lagrar endast ändringarna av dina data sedan föregående säkerhetskopia.

Google Cloud Compute Engine

I likhet med Amazon EC2 är det här sättet att lagra information i molnet dyrare och mer tidskrävande än Cloud Storage, men du kommer att ha full kontroll över backuplagringsmiljön. Den är också tillgänglig från Google Cloud Platform, i avsnittet Komma igång eller under Compute-menyn till vänster.

Hur man använder en Google Cloud Compute Engine

För att skapa en ny virtuell maskin, gå till Google Cloud Platform -> Compute Engine -> Skapa instans

Här måste du lägga till ett instansnamn, region och zon där du kan skapa det. Du måste också ange maskinkonfigurationen i enlighet med dina hårdvaru- och användningskrav, samt diskstorlek och operativsystem som ska användas för den nya virtuella maskinen.

När instansen är klar kan du lagra säkerhetskopiorna här, till exempel , skicka den via SSH eller FTP med den externa IP-adressen. Låt oss titta på ett exempel med Rsync och ett annat med SCP Linux-kommando.

För att ansluta via SSH till den nya virtuella maskinen, se till att du har lagt till din SSH-nyckel i den virtuella maskinens konfiguration.

[[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] ~]#

Du kan enkelt bädda in detta i ett skript för att utföra en automatisk säkerhetskopieringsprocess eller använda den här produkten med ett externt system som ClusterControl för att hantera dina säkerhetskopior.

Hantera dina säkerhetskopior med ClusterControl

På samma sätt som du kan centralisera hanteringen för både databas och säkerhetskopiering från samma plattform genom att använda Cloud SQL, kan du använda ClusterControl för flera hanteringsuppgifter relaterade till din PostgreSQL-databas.

ClusterControl är ett omfattande hanteringssystem för databaser med öppen källkod som automatiserar driftsättning och hanteringsfunktioner, såväl som hälso- och prestandaövervakning. ClusterControl stöder distribution, hantering, övervakning och skalning för olika databastekniker och miljöer. Så du kan till exempel skapa vår virtuella maskin-instans på Google Cloud och distribuera/importera vår databastjänst med ClusterControl.

Skapa en säkerhetskopia

För denna uppgift, gå till ClusterControl -> Välj Cluster -> Backup -> Create Backup.

Du kan skapa en ny säkerhetskopia eller konfigurera en schemalagd. För vårt exempel kommer vi att skapa en enda säkerhetskopia direkt.

Du måste välja en metod, den server från vilken säkerhetskopieringen ska tas och var du vill lagra säkerhetskopian. Du kan också ladda upp vår säkerhetskopia till molnet (AWS, Google eller Azure) genom att aktivera motsvarande knapp.

Ange sedan användningen av komprimering, komprimeringsnivån, kryptering och lagringsperiod för din backup.

Om du aktiverade alternativet för uppladdning av säkerhetskopia till molnet, kommer du att se en avsnittet för att ange molnleverantören (i det här fallet Google Cloud) och användaruppgifterna (ClusterControl -> Integrationer -> Molnleverantörer). För Google Cloud använder den Cloud Storage, så du måste välja en hink eller till och med skapa en ny för att lagra dina säkerhetskopior.

På avsnittet för säkerhetskopiering kan du se säkerhetskopieringens förlopp och information som metod, storlek, plats och mer.

Slutsats

Google Cloud kan vara ett bra alternativ för att lagra dina PostgreSQL-säkerhetskopior och det erbjuder olika produkter för att göra detta. Det är dock inte nödvändigt att ha dina PostgreSQL-databaser igång där eftersom du bara kan använda den som en lagringsplats.

GSutil-verktyget är en trevlig produkt för att hantera din Cloud Storage-data från kommandoraden, lätt att använda och snabbt.

Du kan också kombinera Google Cloud och ClusterControl för att förbättra din PostgreSQL-miljö med hög tillgänglighet och övervakningssystem. Om du vill veta mer om PostgreSQL på Google Cloud kan du kolla vårt djupdykningsblogginlägg.


  1. PostgreSQL:Hur ställer jag in sökvägen på användarnivå?

  2. Upptäcka inkrementella databasändringar (Oracle till MongoDB ETL)

  3. Lagra och visa unicode-sträng (हिन्दी) med PHP och MySQL

  4. MySQL Update Inner Join-tabeller fråga