Alle bedrijven hebben tegenwoordig (of zouden moeten hebben) een Disaster Recovery Plan (DRP) om gegevensverlies te voorkomen in geval van storing; gebouwd volgens een acceptabele Recovery Point Objective (RPO) voor het bedrijf.
Een back-up is een basisbegin in elke DRP, maar om de bruikbaarheid van de back-up te garanderen, is een enkele back-up gewoon niet genoeg. Het beste is om de back-upbestanden op drie verschillende plaatsen op te slaan:één lokaal op de databaseserver (voor sneller herstel), een andere op een gecentraliseerde back-upserver en de laatste in de cloud. Voor deze laatste stap moet u een stabiele en robuuste cloudprovider kiezen om ervoor te zorgen dat uw gegevens correct worden opgeslagen en op elk moment toegankelijk zijn.
In deze blog kijken we naar een van de meest bekende cloudproviders, Google Cloud Platform (GCP) en hoe je deze kunt gebruiken om je PostgreSQL-back-ups in de cloud op te slaan.
Over Google Cloud
Google Cloud biedt een breed scala aan producten voor uw werklast. Laten we eens kijken naar enkele ervan en hoe ze verband houden met het opslaan van PostgreSQL-back-ups in de cloud.
- Cloudopslag:het zorgt voor wereldwijde opslag en het ophalen van elke hoeveelheid gegevens op elk moment. U kunt Cloud Storage gebruiken voor een reeks scenario's, waaronder het aanbieden van website-inhoud, het opslaan van gegevens voor archivering en noodherstel, of het distribueren van grote gegevensobjecten naar gebruikers via directe download.
- Cloud SQL:het is een volledig beheerde databaseservice waarmee u eenvoudig uw relationele PostgreSQL-, MySQL- en SQL Server-databases in de cloud kunt instellen, onderhouden, beheren en beheren.
- Compute Engine:het levert virtuele machines die worden uitgevoerd in Google Cloud met ondersteuning voor schalen van afzonderlijke instanties naar wereldwijde, load-balanced cloud computing. De VM's van Compute Engine starten snel op, worden geleverd met krachtige persistente en lokale schijfopties en leveren consistente prestaties.
Back-ups opslaan op Google Cloud
Als u uw PostgreSQL-database uitvoert op Google Cloud met Cloud SQL, kunt u er rechtstreeks een back-up van maken vanaf het Google Cloud Platform, maar het is niet nodig om deze hier uit te voeren om uw PostgreSQL-back-ups op te slaan.
Google Cloud-opslag
Net als bij het bekende Amazon S3-product, is dit de meest gebruikte optie om back-ups of bestanden op te slaan in Google Cloud als u uw PostgreSQL-database niet met Cloud SQL gebruikt. Het is toegankelijk via het Google Cloud Platform, in het gedeelte Aan de slag of onder het linkermenu Opslag. Met Cloud Storage kun je zelfs eenvoudig je S3-inhoud hierheen overbrengen met behulp van de Transfer-functie.
Google Cloud Storage gebruiken
Eerst moet u een nieuwe bucket maken om uw gegevens op te slaan, dus ga naar Google Cloud Platform -> Opslag -> Bucket maken
In de eerste stap hoeft u alleen maar een nieuwe bucketnaam toe te voegen.
In de volgende stap kunt u het locatietype (multiregionaal standaard) en de locatie.
Vervolgens kunt u de opslagklasse wijzigen van standaard (standaardoptie) naar nearline of coldline.
En dan kun je de beheertoegang wijzigen.
Ten slotte heb je enkele optionele instellingen, zoals codering of bewaarbeleid.
U heeft nu uw nieuwe bucket gemaakt, we zullen zien hoe u deze kunt gebruiken.
De GSutil-tool gebruiken
GSutil is een Python-toepassing waarmee u vanaf de opdrachtregel toegang hebt tot Cloud Storage. Hiermee kunt u verschillende bucket- en objectbeheertaken uitvoeren. Laten we eens kijken hoe we het op CentOS 7 kunnen installeren en hoe we er een back-up mee kunnen uploaden.
Cloud SDK downloaden:
$ curl https://sdk.cloud.google.com | bash
Herstart je shell:
$ exec -l $SHELL
Voer gcloud init uit en configureer de tool:
$ gcloud init
Met deze opdracht wordt u gevraagd in te loggen op uw Google Cloud-account door een URL te openen en een authenticatiecode toe te voegen.
Nu heb je de tool geïnstalleerd en geconfigureerd, laten we een back-up uploaden naar de bucket.
Laten we eerst eens kijken naar onze gemaakte buckets:
[[email protected] ~]# gsutil ls
gs://pgbackups1/
En om uw PostgreSQL-back-up (of een ander bestand) te kopiëren, voert u het volgende uit:
[[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.
De bestemmingsbucket moet bestaan.
En dan kun je de inhoud van de map new_backup weergeven om het geüploade bestand te controleren:
[[email protected] ~]# gsutil ls -r gs://pgbackups1/new_backup/*
gs://pgbackups1/new_backup/
gs://pgbackups1/new_backup/base.tar.gz
Voor meer informatie over het gebruik van GSutil kunt u de officiële documentatie raadplegen.
Google Cloud SQL
Als u de hele omgeving (database + back-ups) in Google Cloud wilt centraliseren, beschikt u over dit Cloud SQL-product. Zo laat je je PostgreSQL-database draaien op Google Cloud en beheer je ook de back-ups vanaf hetzelfde platform. Het is toegankelijk via het Google Cloud Platform, in het gedeelte Aan de slag of onder het linkermenu Opslag.
Google Cloud SQL gebruiken
Als u een nieuwe PostgreSQL-instantie wilt maken, gaat u naar Google Cloud Platform -> SQL -> Instance maken
Hier kunt u kiezen tussen MySQL en PostgreSQL als database-engine. Laten we voor deze blog een PostgreSQL-instantie maken.
Nu moet u een instantie-ID, wachtwoord, locatie en PostgreSQL toevoegen versie (9.6 of 11).
Je hebt ook enkele configuratie-opties, zoals het inschakelen van Openbaar IP-adres, Machinetype en opslag, en back-ups, enz.
Als de Cloud SQL-instantie is gemaakt, kunt u deze selecteren en krijgt u een overzicht van deze nieuwe instantie te zien.
En je kunt naar het gedeelte Back-ups gaan om je PostgreSQL-back-ups te beheren.
Om de opslagkosten te verlagen, werken back-ups stapsgewijs. Elke back-up slaat alleen de wijzigingen in uw gegevens op sinds de vorige back-up.
Google Cloud Compute Engine
Vergelijkbaar met Amazon EC2 is deze manier om informatie in de cloud op te slaan duurder en tijdrovender dan Cloud Storage, maar je hebt volledige controle over de back-upopslagomgeving. Het is ook toegankelijk via het Google Cloud Platform, in het gedeelte Aan de slag of onder het linkermenu Compute.
Een Google Cloud Compute Engine gebruiken
Als u een nieuwe virtuele machine wilt maken, gaat u naar Google Cloud Platform -> Compute Engine -> Instantie maken
Hier moet u een instantienaam, regio en zone toevoegen creëer het. U moet ook de machineconfiguratie specificeren op basis van uw hardware- en gebruiksvereisten, en de schijfgrootte en het besturingssysteem dat u voor de nieuwe virtuele machine wilt gebruiken.
Als de instance gereed is, kunt u hier bijvoorbeeld de back-ups opslaan , verzenden via SSH of FTP met behulp van het externe IP-adres. Laten we eens kijken naar een voorbeeld met Rsync en een ander met het SCP Linux-commando.
Als u via SSH verbinding wilt maken met de nieuwe virtuele machine, moet u ervoor zorgen dat u uw SSH-sleutel hebt toegevoegd aan de configuratie van de virtuele machine.
[[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] ~]#
U kunt dit eenvoudig insluiten in een script om een automatisch back-upproces uit te voeren of dit product gebruiken met een extern systeem zoals ClusterControl om uw back-ups te beheren.
Uw back-ups beheren met ClusterControl
Op dezelfde manier waarop u het beheer voor zowel de database als de back-up vanaf hetzelfde platform kunt centraliseren door Cloud SQL te gebruiken, kunt u ClusterControl gebruiken voor verschillende beheertaken met betrekking tot uw PostgreSQL-database.
ClusterControl is een uitgebreid beheersysteem voor open source-databases dat implementatie- en beheerfuncties automatiseert, evenals gezondheids- en prestatiebewaking. ClusterControl ondersteunt implementatie, beheer, monitoring en schaling voor verschillende databasetechnologieën en -omgevingen. U kunt dus bijvoorbeeld onze Virtual Machine-instantie op Google Cloud maken en onze databaseservice met ClusterControl implementeren/importeren.
Een back-up maken
Ga voor deze taak naar ClusterControl -> Cluster selecteren -> Back-up -> Back-up maken.
Je kunt een nieuwe back-up maken of een geplande back-up configureren. Voor ons voorbeeld zullen we direct een enkele back-up maken.
U moet één methode kiezen, de server waarvan de back-up wordt genomen , en waar u de back-up wilt opslaan. U kunt onze back-up ook uploaden naar de cloud (AWS, Google of Azure) door de bijbehorende knop in te schakelen.
Geef vervolgens het gebruik van compressie, het compressieniveau, de codering en de bewaarperiode op voor uw back-up.
Als u de optie voor het uploaden naar de cloud hebt ingeschakeld, ziet u een sectie om de cloudprovider (in dit geval Google Cloud) en de inloggegevens op te geven (ClusterControl -> Integraties -> Cloudproviders). Voor Google Cloud maakt het gebruik van Cloud Storage, dus u moet een bucket selecteren of zelfs een nieuwe maken om uw back-ups op te slaan.
In de back-upsectie kunt u de voortgang van de back-up zien, en informatie zoals methode, grootte, locatie en meer.
Conclusie
Google Cloud kan een goede optie zijn om uw PostgreSQL-back-ups op te slaan en biedt verschillende producten om dit te maken. Het is echter niet nodig om uw PostgreSQL-databases daar te hebben, omdat u deze alleen als opslaglocatie kunt gebruiken.
De GSutil-tool is een mooi product voor het beheren van uw Cloud Storage-gegevens vanaf de opdrachtregel, gebruiksvriendelijk en snel.
U kunt Google Cloud en ClusterControl ook combineren om uw PostgreSQL-omgeving met hoge beschikbaarheid en monitoringsysteem te verbeteren. Als je meer wilt weten over PostgreSQL op Google Cloud, kun je onze diepgaande blogpost bekijken.