Alle Unternehmen haben (oder sollten) heutzutage einen Disaster Recovery Plan (DRP), um Datenverlust im Falle eines Ausfalls zu verhindern; gemäß einem akzeptablen Recovery Point Objective (RPO) für das Unternehmen erstellt.
Ein Backup ist ein grundlegender Anfang in jedem DRP, aber um die Backup-Verwendbarkeit zu gewährleisten, reicht ein einzelnes Backup einfach nicht aus. Die Best Practice besteht darin, die Backup-Dateien an drei verschiedenen Orten zu speichern, einen lokal auf dem Datenbankserver (für eine schnellere Wiederherstellung), einen anderen auf einem zentralen Backup-Server und den letzten in der Cloud. Für diesen letzten Schritt sollten Sie einen stabilen und robusten Cloud-Anbieter wählen, um sicherzustellen, dass Ihre Daten korrekt gespeichert werden und jederzeit zugänglich sind.
In diesem Blog werfen wir einen Blick auf einen der bekanntesten Cloud-Anbieter, Google Cloud Platform (GCP), und wie Sie damit Ihre PostgreSQL-Backups in der Cloud speichern können.
Über Google Cloud
Google Cloud bietet eine große Auswahl an Produkten für Ihre Workload. Sehen wir uns einige davon an und wie sie mit dem Speichern von PostgreSQL-Backups in der Cloud zusammenhängen.
- Cloud Storage:Ermöglicht das weltweite Speichern und Abrufen beliebiger Datenmengen zu jeder Zeit. Sie können Cloud Storage für eine Reihe von Szenarien verwenden, darunter das Bereitstellen von Website-Inhalten, das Speichern von Daten für die Archivierung und Notfallwiederherstellung oder das Verteilen großer Datenobjekte an Benutzer per direktem Download.
- Cloud SQL:Es ist ein vollständig verwalteter Datenbankdienst, mit dem Sie Ihre relationalen PostgreSQL-, MySQL- und SQL Server-Datenbanken ganz einfach in der Cloud einrichten, pflegen, verwalten und verwalten können.
- Compute Engine:Stellt virtuelle Maschinen bereit, die in Google Cloud ausgeführt werden, mit Unterstützung für die Skalierung von einzelnen Instanzen zu globalem Cloud-Computing mit Lastenausgleich. Die VMs von Compute Engine booten schnell, verfügen über leistungsstarke Optionen für persistente und lokale Festplatten und liefern konsistente Leistung.
Speichern von Sicherungen in Google Cloud
Wenn Sie Ihre PostgreSQL-Datenbank in Google Cloud mit Cloud SQL ausführen, können Sie sie direkt von der Google Cloud Platform sichern, es ist jedoch nicht erforderlich, sie hier auszuführen, um Ihre PostgreSQL-Sicherungen zu speichern.
Google Cloud-Speicher
Ähnlich wie beim bekannten Amazon S3-Produkt ist dies die am häufigsten verwendete Option zum Speichern von Sicherungen oder Dateien in Google Cloud, wenn Sie Ihre PostgreSQL-Datenbank nicht mit Cloud SQL ausführen. Es ist über die Google Cloud-Plattform im Abschnitt „Erste Schritte“ oder im linken Menü „Speicher“ zugänglich. Mit Cloud Storage können Sie Ihre S3-Inhalte mit der Übertragungsfunktion sogar ganz einfach hierher übertragen.
Verwendung von Google Cloud-Speicher
Zunächst müssen Sie einen neuen Bucket erstellen, um Ihre Daten zu speichern, gehen Sie also zu Google Cloud Platform -> Storage -> Create Bucket
Im ersten Schritt müssen Sie nur einen neuen Bucket-Namen hinzufügen.
Im nächsten Schritt können Sie den Standorttyp (multi-region standardmäßig) und den Ort des Standorts.
Dann können Sie die Speicherklasse von Standard (Standardoption) zu ändern Nearline oder Coldline.
Und dann können Sie den Kontrollzugriff ändern.
Schließlich haben Sie einige optionale Einstellungen wie Verschlüsselung oder Aufbewahrungsrichtlinie.
Jetzt haben Sie Ihren neuen Bucket erstellt, wir werden sehen, wie man ihn benutzt.
Mit dem GSutil-Tool
GSutil ist eine Python-Anwendung, mit der Sie über die Befehlszeile auf Cloud Storage zugreifen können. Es ermöglicht Ihnen, verschiedene Bucket- und Objektverwaltungsaufgaben durchzuführen. Sehen wir uns an, wie man es unter CentOS 7 installiert und wie man damit ein Backup hochlädt.
Cloud SDK herunterladen:
$ curl https://sdk.cloud.google.com | bash
Starten Sie Ihre Shell neu:
$ exec -l $SHELL
Führen Sie gcloud init aus und konfigurieren Sie das Tool:
$ gcloud init
Dieser Befehl fordert Sie auf, sich bei Ihrem Google Cloud-Konto anzumelden, indem Sie auf eine URL zugreifen und einen Authentifizierungscode hinzufügen.
Jetzt haben Sie das Tool installiert und konfiguriert, lassen Sie uns ein Backup in den Bucket hochladen.
Überprüfen wir zuerst unsere erstellten Buckets:
[[email protected] ~]# gsutil ls
gs://pgbackups1/
Und um Ihre PostgreSQL-Sicherung (oder eine andere Datei) zu kopieren, führen Sie Folgendes aus:
[[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.
Der Ziel-Bucket muss existieren.
Und dann können Sie den Inhalt des Verzeichnisses new_backup auflisten, um die hochgeladene Datei zu überprüfen:
[[email protected] ~]# gsutil ls -r gs://pgbackups1/new_backup/*
gs://pgbackups1/new_backup/
gs://pgbackups1/new_backup/base.tar.gz
Weitere Informationen zur Verwendung von GSutil finden Sie in der offiziellen Dokumentation.
Google Cloud SQL
Wenn Sie die gesamte Umgebung (Datenbank + Sicherungen) in Google Cloud zentralisieren möchten, steht Ihnen dieses Cloud SQL-Produkt zur Verfügung. Auf diese Weise wird Ihre PostgreSQL-Datenbank in Google Cloud ausgeführt und Sie können auch die Sicherungen von derselben Plattform aus verwalten. Es ist über die Google Cloud-Plattform im Abschnitt "Erste Schritte" oder im linken Menü "Speicher" zugänglich.
Verwendung von Google Cloud SQL
Um eine neue PostgreSQL-Instanz zu erstellen, gehen Sie zu Google Cloud Platform -> SQL -> Instanz erstellen
Hier können Sie zwischen MySQL und PostgreSQL als Datenbank-Engine wählen. Lassen Sie uns für diesen Blog eine PostgreSQL-Instanz erstellen.
Jetzt müssen Sie eine Instanz-ID, ein Passwort, einen Speicherort und PostgreSQL hinzufügen Version (9.6 oder 11).
Sie haben auch einige Konfigurationsoptionen, wie z. B. öffentliche IP-Adresse aktivieren, Maschinentyp und Speicherung sowie Sicherungen usw.
Wenn die Cloud SQL-Instanz erstellt ist, können Sie sie auswählen und sehen eine Übersicht dieser neuen Instanz.
Und Sie können zum Abschnitt Sicherungen gehen, um Ihre PostgreSQL-Sicherungen zu verwalten.
Um die Speicherkosten zu senken, arbeiten Sicherungen inkrementell. Bei jeder Sicherung werden nur die Änderungen an Ihren Daten seit der letzten Sicherung gespeichert.
Google Cloud Compute Engine
Ähnlich wie bei Amazon EC2 ist diese Methode zum Speichern von Informationen in der Cloud teurer und zeitaufwändiger als Cloud Storage, aber Sie haben die volle Kontrolle über die Backup-Speicherumgebung. Es ist auch über die Google Cloud-Plattform im Abschnitt "Erste Schritte" oder im linken Menü "Berechnen" zugänglich.
So verwenden Sie eine Google Cloud Compute Engine
Um eine neue virtuelle Maschine zu erstellen, gehen Sie zu Google Cloud Platform -> Compute Engine -> Instanz erstellen
Hier müssen Sie einen Instanznamen, eine Region und eine Zielzone hinzufügen erstelle es. Außerdem müssen Sie die Maschinenkonfiguration gemäß Ihren Hardware- und Nutzungsanforderungen sowie die Festplattengröße und das Betriebssystem angeben, die für die neue virtuelle Maschine verwendet werden sollen.
Wenn die Instanz fertig ist, können Sie hier beispielsweise die Backups ablegen , indem Sie es über SSH oder FTP unter Verwendung der externen IP-Adresse senden. Schauen wir uns ein Beispiel mit Rsync und ein weiteres mit dem SCP-Linux-Befehl an.
Um sich über SSH mit der neuen virtuellen Maschine zu verbinden, stellen Sie sicher, dass Sie Ihren SSH-Schlüssel in der Konfiguration der virtuellen Maschine hinzugefügt haben.
[[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] ~]#
Sie können dies einfach in ein Skript einbetten, um einen automatischen Backup-Prozess durchzuführen, oder dieses Produkt mit einem externen System wie ClusterControl verwenden, um Ihre Backups zu verwalten.
Verwalten Ihrer Backups mit ClusterControl
So wie Sie die Verwaltung für Datenbank und Backup von derselben Plattform aus zentralisieren können, indem Sie Cloud SQL verwenden, können Sie ClusterControl für verschiedene Verwaltungsaufgaben im Zusammenhang mit Ihrer PostgreSQL-Datenbank verwenden.
ClusterControl ist ein umfassendes Verwaltungssystem für Open-Source-Datenbanken, das Bereitstellungs- und Verwaltungsfunktionen sowie Zustands- und Leistungsüberwachung automatisiert. ClusterControl unterstützt die Bereitstellung, Verwaltung, Überwachung und Skalierung für verschiedene Datenbanktechnologien und -umgebungen. So können Sie beispielsweise unsere Virtual Machine-Instanz in Google Cloud erstellen und unseren Datenbankdienst mit ClusterControl bereitstellen/importieren.
Erstellen einer Sicherung
Gehen Sie für diese Aufgabe zu ClusterControl -> Cluster auswählen -> Backup -> Backup erstellen.
Sie können eine neue Sicherung erstellen oder eine geplante Sicherung konfigurieren. Für unser Beispiel erstellen wir sofort ein einzelnes Backup.
Sie müssen eine Methode auswählen, nämlich den Server, von dem die Sicherung erstellt wird , und wo Sie die Sicherung speichern möchten. Sie können unser Backup auch in die Cloud (AWS, Google oder Azure) hochladen, indem Sie die entsprechende Schaltfläche aktivieren.
Geben Sie dann die Verwendung der Komprimierung, die Komprimierungsstufe, die Verschlüsselung und den Aufbewahrungszeitraum an für Ihre Sicherung.
Wenn Sie die Option zum Hochladen der Sicherung in die Cloud aktiviert haben, sehen Sie a Abschnitt, um den Cloud-Anbieter (in diesem Fall Google Cloud) und die Anmeldeinformationen anzugeben (ClusterControl -> Integrations -> Cloud Providers). Für Google Cloud wird Cloud Storage verwendet, sodass Sie einen Bucket auswählen oder sogar einen neuen erstellen müssen, um Ihre Sicherungen zu speichern.
Im Sicherungsabschnitt können Sie den Fortschritt der Sicherung sehen und Informationen wie Methode, Größe, Ort und mehr.
Fazit
Google Cloud ist möglicherweise eine gute Option zum Speichern Ihrer PostgreSQL-Sicherungen und bietet verschiedene Produkte dafür an. Es ist jedoch nicht erforderlich, dass Ihre PostgreSQL-Datenbanken dort ausgeführt werden, da Sie sie nur als Speicherort verwenden können.
Das GSutil-Tool ist ein nettes Produkt zum Verwalten Ihrer Cloud-Speicherdaten über die Befehlszeile, einfach zu bedienen und schnell.
Sie können auch Google Cloud und ClusterControl kombinieren, um Ihre PostgreSQL-Hochverfügbarkeitsumgebung und Ihr Überwachungssystem zu verbessern. Wenn Sie mehr über PostgreSQL in Google Cloud erfahren möchten, lesen Sie unseren Deep-Dive-Blogpost.