Auf dieser Seite erfahren Sie, wie Sie Ihre Daten schützen, indem Sie AlloyDB Omni für die Arbeit mit pgBackRest, einem Open-Source-Datenbanksicherungsserver, konfigurieren. Eine Übersicht über die verfügbaren Sicherungslösungen finden Sie unter AlloyDB Omni sichern und wiederherstellen.
Informationen zu Kubernetes finden Sie unter Daten in Kubernetes sichern und wiederherstellen.
pgBackRest ist ein flexibles Dienstprogramm zum Sichern und Wiederherstellen von PostgreSQL. Da AlloyDB Omni mit PostgreSQL kompatibel ist, können Sie pgBackRest verwenden, um Ihre AlloyDB Omni-Daten mit manuellen, geplanten und kontinuierlichen Sicherungen zu schützen.
pgBackRest schreibt die Sicherungsdaten in lokale, Remote- oder cloudbasierte Repositories. Nachdem Sie mindestens ein Repository eingerichtet haben, können Sie Ihre AlloyDB Omni-Daten mit pgBackRest auf verschiedene Arten wiederherstellen, einschließlich der Wiederherstellung zu einem bestimmten Zeitpunkt (Point-in-Time-Recovery, PITR).
AlloyDB Omni enthält pgBackRest in seinem Docker-Container. Sie können also pgBackRest verwenden, um Ihre AlloyDB Omni-Daten zu sichern und wiederherzustellen, ohne zusätzliche Software installieren zu müssen.
Weitere Informationen zu pgBackRest finden Sie in der Nutzerhandbuch.
Hinweise
Bevor Sie AlloyDB Omni für die Verwendung mit pgBackRest konfigurieren, muss AlloyDB Omni auf einem von Ihnen verwalteten Server installiert und ausgeführt werden.
Hinweis zu Dateisystempfaden
Die in AlloyDB Omni enthaltene pgBackRest-Software wird im selben Docker-Container wie AlloyDB Omni ausgeführt. Daher sind alle Dateisystempfade, die Sie pgBackRest über die Konfigurationsdatei oder als Befehlszeilenargumente angeben, Speicherorte im Dateisystem des Containers und nicht im Dateisystem Ihres Hosts.
Viele der Befehle und Beispiele auf dieser Seite beziehen sich auf Ihr Datenverzeichnis als /var/lib/postgresql/data
, unabhängig vom Speicherort Ihres Datenverzeichnisses auf Ihrem Hostsystem. Das liegt daran, dass AlloyDB Omni Ihr Datenverzeichnis in seinem containerisierten Dateisystem unter /var/lib/postgresql/data
bereitstellt. Sie können das Datenverzeichnis daher als Speicherort für die pgBackRest-Konfiguration und ‑Repositories verwenden, ohne weitere Einrichtung.
Wenn Sie den containerisierten pgBackRest so konfigurieren möchten, dass er Verzeichnisse im Dateisystem Ihres Hosts außerhalb Ihres AlloyDB Omni-Datenverzeichnisses liest oder in diese schreibt, müssen Sie diese Verzeichnisse für den Container verfügbar machen.
Einfache Konfiguration mit lokalen Sicherungen
In den Schritten in diesem Abschnitt werden Sie durch die grundlegende Einrichtung von pgBackRest geführt, einschließlich einer kurzen Konfigurationsdatei, die pgBackRest anweist, kontinuierliche Sicherungsdaten in ein Unterverzeichnis Ihres AlloyDB Omni-Datenverzeichnisses zu schreiben.
Da pgBackRest ein flexibles Drittanbieterprodukt ist, das mit AlloyDB Omni kompatibel ist, können Sie alle diese Schritte nach Ihren eigenen Anforderungen und Vorlieben anpassen. Wenn Sie Dateisystempfade ändern, müssen diese für den Container sichtbar sein. Weitere Informationen finden Sie unter Hinweis zu Dateisystempfaden.
Authentifizierung für vertrauenswürdige Unix-Sockets einrichten
Erlauben Sie Ihrem AlloyDB Omni-Hostcomputer, den postgres
-Nutzer des Datenbankservers zu authentifizieren, ohne dass ein Passwort erforderlich ist. Dies vereinfacht die nachfolgenden Schritte.
Fügen Sie der Datei
DATA_DIR/pg_hba.conf
die folgende Zeile hinzu:local all postgres trust
Ersetzen Sie DATA_DIR durch den Dateisystempfad zu Ihrem Datenverzeichnis, z. B.
/home/$USER/alloydb-data
.So starten Sie AlloyDB Omni neu:
docker restart CONTAINER_NAME
Ersetzen Sie
CONTAINER_NAME
durch den Namen, den Sie dem AlloyDB Omni-Container bei der Installation zugewiesen haben, z. B.my-omni
.
Sicherungsrepository erstellen und konfigurieren
Die in diesem Abschnitt erstellte Konfigurationsdatei ist ein Beispiel, das eine minimale Einrichtung für lokal gespeicherte kontinuierliche Sicherungen ermöglicht. Sie können diese Datei nach Bedarf ändern. Weitere Informationen finden Sie unter Cluster-Strophe konfigurieren.
Erstellen Sie ein Unterverzeichnis
backups
im AlloyDB Omni-Datenverzeichnis:mkdir DATA_DIR/backups
Erstellen Sie im Datenverzeichnis eine Datei namens
pgbackrest.conf
und kopieren Sie den folgenden Inhalt hinein:[global] # Paths (all mandatory): repo1-path=/var/lib/postgresql/data/backups spool-path=/var/lib/postgresql/data lock-path=/var/lib/postgresql/data # Retention details: repo1-retention-full=3 repo1-retention-full-type=count repo1-retention-diff=16 # Force a checkpoint to start backup immediately: start-fast=y # Logging parameters: log-path=/var/lib/postgresql/data/backups log-level-console=info log-level-file=info # Recommended ZSTD compression: compress-type=zst # Other performance parameters: archive-async=y archive-push-queue-max=1024MB archive-get-queue-max=256MB archive-missing-retry=y [global:archive-push] process-max=2 [global:archive-get] process-max=2 [omni] pg1-user=postgres pg1-socket-path=/var/lib/postgresql/data pg1-path=/var/lib/postgresql/data/data
Initialisieren Sie den Sicherungsort mit dem Befehl
pgbackrest stanza-create
:docker exec CONTAINER_NAME pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni stanza-create
Datenbank für kontinuierliche Sicherungen konfigurieren
Führen Sie den folgenden Befehl aus, um mehrere PostgreSQL-Parameter festzulegen und kontinuierliche Sicherungen zu aktivieren:
docker exec CONTAINER_NAME psql -h localhost -U postgres \ -c "ALTER SYSTEM SET archive_command='pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni archive-push %p';" \ -c "ALTER SYSTEM SET archive_mode=on;" \ -c "ALTER SYSTEM SET max_wal_senders=10;" \ -c "ALTER SYSTEM SET wal_level=replica;"
So starten Sie AlloyDB Omni neu:
docker restart CONTAINER_NAME
pgBackRest-Befehle ausführen
Wenn Sie die Schritte im vorherigen Abschnitt ausführen, wird pgBackRest für die Verwendung mit Ihrem AlloyDB Omni-Server konfiguriert. Informationen zum Prüfen des Sicherungsstatus, zum Erstellen manueller Sicherungen und zum Ausführen anderer Aufgaben finden Sie in der Befehlsreferenz.
Wir empfehlen, pgBackRest-Befehle direkt über den Hostcomputer auszuführen, auf dem der AlloyDB Omni-Container installiert ist, und dazu den Befehl docker exec
zu verwenden. Verwenden Sie beispielsweise den Befehl pgbackrest backup
, um eine manuelle Sicherung zu erstellen. Ändern Sie ihn so, dass er in einem docker
exec
-Befehl ausgeführt wird und auf die zuvor erstellte Konfigurationsdatei verweist:
docker exec CONTAINER_NAME pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni --type=full backup
Sie können auch Umgebungsvariablen verwenden, um den Speicherort der pgBackRest-Konfigurationsdatei festzulegen. Weitere Informationen finden Sie unter Config Path Option.
Geplante Sicherungen einrichten
Wenn Sie geplante Sicherungen einrichten möchten, erstellen Sie einen Cronjob, der den Befehl pgbackrest backup
so oft wie nötig ausführt. Weitere Informationen finden Sie unter Sicherung planen.
Benutzerdefinierte Konfiguration und Remote-Sicherungen
Nachdem Sie eine funktionierende Basiskonfiguration haben, können Sie die Konfigurationsdatei mithilfe der in der Konfigurationsreferenz für pgBackRest beschriebenen Optionen an Ihre Anforderungen und Vorlieben anpassen.
Dazu gehört auch die Angabe zusätzlicher Sicherungs-Repositories auf Remote-Computern oder in der Cloud. Wenn Sie mehrere Repositories definieren, schreibt pgBackRest bei der Standardsicherungsaktion gleichzeitig in alle.
pgBackRest unterstützt beispielsweise die Verwendung eines Cloud Storage-Bucket als Sicherungs-Repository mit einer Reihe entsprechender Konfigurationsoptionen. Im folgenden Abschnitt wird eine Möglichkeit zur Verwendung dieser Optionen veranschaulicht.
Beispielkonfiguration mit Cloud Storage
Die Schritte in diesem Abschnitt bauen auf der Konfigurationsdatei auf, die im Abschnitt Grundlegende Konfiguration mit lokalen Sicherungen vorgestellt wurde. Durch diese Änderungen an dieser Datei wird ein zweites Sicherungsverzeichnis in einem Cloud Storage-Bucket definiert, auf das über Identity and Access Management (IAM) zugegriffen wird.
Für die automatische Authentifizierung in diesem Beispiel muss ein AlloyDB Omni-Cluster auf einer Compute Engine-VM-Instanz ausgeführt werden. Wenn Sie AlloyDB Omni nicht auf einer Compute Engine-VM-Instanz ausführen, können Sie trotzdem mit einer anderen Authentifizierungsmethode, z. B. einem im lokalen Dateisystem gespeicherten Google Cloud -Dienstkontoschlüssel, eine Sicherung in einem Cloud Storage-Bucket erstellen.
So erweitern Sie die vorherige Konfigurationsdatei, um ein Cloud Storage-basiertes pgBackRest-Repository zu definieren:
Konfigurieren Sie die Bucket-Berechtigungen, damit das mit Ihrer VM-Instanz verknüpfte Dienstkonto in den Bucket schreiben kann. Dazu muss für dieses Dienstkonto die IAM-Rolle „Storage Object User“ festgelegt sein.
Fügen Sie der Datei
pgbackrest.conf
die folgenden Zeilen hinzu:# Cloud Storage access details: repo2-type=gcs repo2-gcs-key-type=auto repo2-storage-verify-tls=n # Cloud Storage bucket and path details: repo2-gcs-bucket=BUCKET_NAME repo2-path=/pgbackrest # Cloud Storage backup retention parameters: repo2-retention-full=8 repo2-retention-full-type=count
Ersetzen Sie BUCKET_NAME durch den Namen des Cloud Storage-Buckets, in dem pgBackRest Sicherungen speichern soll.
Initialisieren Sie den cloudbasierten Sicherungsort mit dem Befehl
pgbackrest stanza-create
:docker exec CONTAINER_NAME pgbackrest --config-path=/var/lib/postgresql/data/backups --stanza=omni stanza-create
Nachdem Sie das Sicherungsverzeichnis in Ihrem Cloud Storage-Bucket mit dem Befehl pgbackrest stanza-create
initialisiert haben, führt pgBackRest Sicherungen an zwei Speicherorten durch:
Der Speicherort im lokalen Dateisystem, der in der Konfigurationsdatei an anderer Stelle als
repo1-path
definiert ist.Der Cloud Storage-Bucket, der mit den
repo2-
-Konfigurationsanweisungen dieses Beispiels definiert wurde.