pgBackRest für AlloyDB Omni einrichten

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite wird beschrieben, wie Sie Ihre Daten schützen, indem Sie AlloyDB Omni für die Verwendung mit pgBackRest konfigurieren, einem Open-Source-Datenbanksicherungsserver. Eine Übersicht über die verfügbaren Sicherungslösungen finden Sie unter AlloyDB Omni sichern und wiederherstellen.

pgBackRest ist ein flexibles Sicherungs- und Wiederherstellungstool für 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 seine Sicherungsdaten in lokale, Remote- oder cloudbasierte Repositories. Nachdem Sie mindestens ein Repository eingerichtet haben, können Sie pgBackRest verwenden, um Ihre AlloyDB Omni-Daten mit verschiedenen Methoden wiederherzustellen, 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 im Nutzerhandbuch.

Hinweise

Bevor Sie AlloyDB Omni für die Verwendung mit pgBackrest konfigurieren, muss AlloyDB Omni auf einem Server, den Sie steuern, installiert sein und ausgeführt werden.

Hinweis zu Dateisystempfaden

Die in AlloyDB Omni enthaltene pgBackRest-Software wird im selben Docker-Container wie AlloyDB Omni ausgeführt. Aus diesem Grund sind alle Dateisystempfade, die Sie pgBackRest über die Konfigurationsdatei oder als Befehlszeilenargumente zur Verfügung stellen, Speicherorte im Dateisystem des Containers und nicht im Dateisystem Ihres Hostcomputers.

Viele der Befehle und Beispiele auf dieser Seite beziehen sich auf Ihr Datenverzeichnis als /mnt/disks/pgsql, unabhängig vom Speicherort Ihres Datenverzeichnisses auf Ihrem Hostsystem. Das liegt daran, dass AlloyDB Omni Ihr Datenverzeichnis im containerisierten Dateisystem unter /mnt/disks/pgsql bereitstellt. Daher können Sie das Datenverzeichnis ohne weitere Einrichtung als Speicherort für die pgBackRest-Konfiguration und ‑Repositories verwenden.

Wenn Sie den containerisierten pgBackRest so konfigurieren möchten, dass er aus Verzeichnissen im Dateisystem Ihres Hostcomputers außerhalb Ihres AlloyDB Omni-Datenverzeichnisses liest oder in solche Verzeichnisse schreibt, müssen Sie diese Verzeichnisse für den Container verfügbar machen.

Basiskonfiguration mit lokalen Sicherungen

Die Schritte in diesem Abschnitt führen Sie durch eine einfache Einrichtung von pgBackRest, 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 jeden dieser Schritte nach Bedarf an Ihre eigenen Anforderungen und Vorlieben anpassen. Wenn Sie Dateisystempfade ändern, müssen diese für den Container sichtbar sein. Hinweis zu Dateisystempfaden

Authentifizierung über vertrauenswürdige Unix-Sockets einrichten

Ermöglichen Sie es der AlloyDB Omni-Hostmaschine, den postgres-Nutzer des Datenbankservers ohne Passwort zu authentifizieren. Das vereinfacht die nachfolgenden Schritte.

  1. Fügen Sie der Datei /var/alloydb/config/pg_hba.conf die folgende Zeile hinzu:

    local       all      postgres       trust
    
  2. AlloyDB Omni neu starten:

    sudo alloydb database-server stop
    sudo alloydb database-server start

Sicherungs-Repository erstellen und konfigurieren

Die in diesem Abschnitt erstellte Konfigurationsdatei ist ein Beispiel, das eine minimale Einrichtung für die lokale kontinuierliche Sicherung ermöglicht. Sie können diese Datei nach Bedarf ändern. Weitere Informationen finden Sie unter Cluster-Stanza konfigurieren.

  1. Erstellen Sie im Datenverzeichnis von AlloyDB Omni das Unterverzeichnis backups:

    mkdir DATA_DIR/backups

    Ersetzen Sie DATA_DIR durch den Dateisystempfad zu Ihrem Datenverzeichnis, z. B. /home/$USER/alloydb-data.

  2. Erstellen Sie in Ihrem Datenverzeichnis eine Datei mit dem Namen pgbackrest.conf und kopieren Sie den folgenden Inhalt hinein:

    # Paths (all mandatory):
    repo1-path=/mnt/disks/pgsql/backups
    spool-path=/mnt/disks/pgsql
    lock-path=/mnt/disks/pgsql
    
    # 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=/mnt/disks/pgsql/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=/mnt/disks/pgsql
    pg1-path=/mnt/disks/pgsql/data
    
  3. Initialisieren Sie den Sicherungsspeicherort mit dem Befehl pgbackrest stanza-create:

    docker exec pg-service pgbackrest --config-path=/mnt/disks/pgsql --stanza=omni stanza-create

Datenbank für kontinuierliche Sicherungen konfigurieren

  1. Führen Sie den folgenden Befehl aus, um kontinuierliche Sicherungen zu aktivieren und mehrere PostgreSQL-Parameter festzulegen:

    docker exec pg-service psql -h localhost -U postgres \
    -c "ALTER SYSTEM SET archive_command='pgbackrest --config-path=/mnt/disks/pgsql --stanza=omni archive-push %p';" \
    -c "ALTER SYSTEM SET archive_mode=on;" \
    -c "ALTER SYSTEM SET max_wal_senders=on;" \
    -c "ALTER SYSTEM SET wal_level=replica;"
  2. AlloyDB Omni neu starten:

    sudo alloydb database-server stop
    sudo alloydb database-server start

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.

Als Best Practice sollten Sie pgBackRest-Befehle direkt auf dem Host ausführen, auf dem der AlloyDB Omni-Container installiert ist, und dabei den Befehl docker exec verwenden. Verwenden Sie beispielsweise den Befehl pgbackrest backup, um ein manuelles Backup zu erstellen. Ändern Sie den Befehl so, dass er in einem docker exec-Befehl ausgeführt wird und auf die Konfigurationsdatei verweist, die Sie zuvor erstellt haben:

docker exec pg-service pgbackrest --config-path=/mnt/disks/pgsql --stanza=omni --type=full backup

Der Wert des Flags --config-path ist /mnt/disks/pgsql, da dies immer der Speicherort Ihres Datenverzeichnisses im Dateisystem des AlloyDB Omni-Containers ist. Wenn Sie die Schritte im vorherigen Abschnitt ausgeführt haben, enthält Ihr Datenverzeichnis die Datei pgbackrest.conf, die für die Ausführung von pgBackRest-Befehlen erforderlich ist. Weitere Informationen finden Sie unter Hinweis zu Dateisystempfaden.

Sie können auch Umgebungsvariablen verwenden, um den Speicherort Ihrer pgBackRest-Konfigurationsdatei festzulegen. Weitere Informationen finden Sie unter Konfigurationspfadoption.

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 grundlegende Konfiguration eingerichtet haben, können Sie die Konfigurationsdatei mit den in der pgBackRest-Konfigurationsreferenz dokumentierten 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 Repositorys definieren, schreibt pgBackRest standardmäßig gleichzeitig in alle.

pgBackRest unterstützt beispielsweise die Verwendung eines Cloud Storage-Bucket als Sicherungs-Repository mit einer Reihe von zugehörigen Konfigurationsoptionen. Im folgenden Abschnitt wird eine Möglichkeit zur Verwendung dieser Optionen beschrieben.

Beispielkonfiguration mit Cloud Storage

Die Schritte in diesem Abschnitt bauen auf der Konfigurationsdatei auf, die in Einfache Konfiguration mit lokalen Back-ups beschrieben wird. Diese Änderungen an der Datei definieren ein zweites Sicherungs-Repository in einem Cloud Storage-Bucket, 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 eine Sicherung in einem Cloud Storage-Bucket erstellen. Verwenden Sie dazu eine andere Authentifizierungsmethode, z. B. einen Google Cloud Dienstkontoschlüssel, der im lokalen Dateisystem gespeichert ist.

So erweitern Sie die vorherige Konfigurationsdatei, um ein Cloud Storage-basiertes pgBackRest-Repository zu definieren:

  1. Konfigurieren Sie die Bucket-Berechtigungen, damit das Dienstkonto, das an Ihre VM-Instanz angehängt ist, in den Bucket schreiben kann. Dazu ist die IAM-Rolle „Storage Object User“ für dieses Dienstkonto erforderlich.

  2. Fügen Sie Ihrer pgbackrest.conf-Datei diese 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 Back-ups speichern soll.

  3. Initialisieren Sie den cloudbasierten Sicherungsspeicherort mit dem Befehl pgbackrest stanza-create:

    docker exec pg-service pgbackrest --config-path=/mnt/disks/pgsql --stanza=omni stanza-create

Nachdem Sie das Sicherungs-Repository in Ihrem Cloud Storage-Bucket mit dem Befehl pgbackrest stanza-create initialisiert haben, sichert pgBackRest an zwei Speicherorten:

  • Der Speicherort im lokalen Dateisystem, der an anderer Stelle in der Konfigurationsdatei als repo1-path definiert ist.

  • Der Cloud Storage-Bucket, der mit den in diesem Beispiel eingerichteten repo2--Konfigurationsanweisungen definiert wird.

Nächste Schritte