pgBackRest für AlloyDB Omni unter Linux 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.

TDE-fähige Cluster unterstützen transparente Sicherungen und Wiederherstellungen mit pgBackRest. Sie müssen keine zusätzlichen Schritte ausführen. Weitere Informationen finden Sie unter TDE-fähigen Cluster erstellen.

Weitere Informationen zu pgBackRest finden Sie in seinem Nutzerhandbuch.

Hinweis

Bevor Sie AlloyDB Omni für die Verwendung mit pgBackRest konfigurieren, müssen Sie die folgenden Voraussetzungen erfüllen:

Basiskonfiguration mit lokalen Sicherungen

Die Schritte in diesem Abschnitt führen Sie durch eine grundlegende Einrichtung von pgBackRest. Bei Basiskonfigurationen werden keine Sicherungen nach Zeitplan aktiviert. Weitere Informationen finden Sie unter Geplante Sicherungen einrichten.

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.

Sicherungsverzeichnis erstellen

Aus organisatorischen Gründen empfehlen wir dringend, ein separates Verzeichnis für pgBackRest-Sicherungen zu erstellen. So richten Sie ein neues Verzeichnis ein:

  1. Wenn AlloyDB Omni ausgeführt wird, beenden Sie es.

    sudo systemctl stop alloydbomni18
    
  2. Erstellen Sie ein Sicherungsverzeichnis.

    sudo mkdir -p BACKUP_DIR
    

    Ersetzen Sie die folgende Variable:

    • BACKUP_DIR: Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.
  3. Machen Sie das Sicherungsverzeichnis für postgres lesbar.

    sudo chown -R postgres:postgres BACKUP_DIR
    

    Ersetzen Sie die folgende Variable:

    • BACKUP_DIR: Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.

Lokale Sicherungen konfigurieren

pgBackRest erstellt für jede Sicherung Unterverzeichnisse und fügt eine Manifestdatei im Nur-Text-Format hinzu.

pgBackRest verwendet den Begriff Stanza für die Konfiguration eines PostgreSQL-Datenbankclusters. Der Stanza-Name ist beliebig und muss nicht mit dem Hostserver, dem PostgreSQL-Cluster oder dem Datenbanknamen übereinstimmen. In der pgBackRest-Dokumentation wird empfohlen, die Stanza nach der Funktion des Clusters zu benennen.

Das Repository ist der Ort, an dem Sicherungen geschrieben werden. pgBackRest unterstützt das Schreiben in mehrere Repositorys in einer bestimmten Stanza. Die meisten Konfigurationsparameter für Repositorys werden mit einem numerischen Wert indexiert. Beispiel: repo1-. Parameter für PostgreSQL-Cluster werden ebenfalls unabhängig indexiert. Beispiel: pg1-.

pgBackRest verwendet eine Konfigurationsdatei namens pgbackrest.conf, um globale und stanzaspezifische Parameter zu speichern.

Wenn Sie eine Konfigurationsdatei für die Sicherung Ihres AlloyDB Omni-Clusters erstellen und initialisieren möchten, erstellen Sie die Datei pgbackrest.conf im hostseitigen Sicherungsverzeichnis, das Sie unter Sicherungsvolume in Container einbinden oder Sicherungsverzeichnis erstellen erstellt haben.

[global]
# Paths (all mandatory):


repo1-path=BACKUP_DIR
spool-path=BACKUP_DIR/spool
lock-path=BACKUP_DIR


# 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=BACKUP_DIR

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=/tmp



pg1-path=DATA_DIR


Einige Parameter sind obligatorisch, andere können jedoch bei Bedarf an Ihre spezifischen Anforderungen angepasst werden, z. B.:

  • repo1-path: Verzeichnispfad, in den die Sicherungen geschrieben werden. Wir empfehlen einen Speicherort, der sowohl für den Hostserver als auch für den Container sichtbar ist.

  • log-path: Verzeichnispfad, in den die Logdateien geschrieben werden. Wenn Sie die Logdateien an einem separaten Speicherort speichern möchten, der nicht mit den Sicherungen selbst vermischt ist, passen Sie diesen Parameter an.

  • repo1-retention-full: Anzahl der aufzubewahrenden Vollsicherungen.

  • repo1-retention-full-type: Gibt an, ob die Aufbewahrungsdauer nach Anzahl oder Zeitraum (in Tagen) gemessen wird.

  • repo1-retention-diff: Anzahl der aufzubewahrenden differenziellen Sicherungen.

Weitere nicht kritische, aber empfohlene Parametereinstellungen, die mit AlloyDB Omni in der Konfigurationsdatei kompatibel sind, sind:

  • log-level-console: Protokollierungsstufe, die bei der Ausführung von pgBackup-Befehlen auf dem Bildschirm (STDOUT) ausgegeben wird. Sie können diese Einstellung in der Konfigurationsdatei an Ihre Anforderungen anpassen oder diesen Wert mit dem Befehlszeilenargument --log-level-console überschreiben. Der Standardwert ist warn.

  • start-fast: Erzwingt einen Prüfpunkt, um die Sicherungen schnell zu starten. Der Standardwert ist n.

  • archive-async: WAL-Segmentdateien asynchron für eine bessere Leistung übertragen. Der Standardwert ist n.

  • process-max: Maximale Anzahl der Prozesse, die für die Komprimierung und Übertragung verwendet werden sollen. Dieser Wert wird in der Regel auf max_cpu/4 auf einem primären Cluster oder max_cpu/2 auf einem Standby-Cluster festgelegt. Der Standardwert ist 1.

  • compress-type: Zu verwendender Komprimierungsalgorithmus. Der Standardwert ist gz.

Es gibt viele weitere pgBackRest-Konfigurationsparameter, die angepasst werden können. In dieser Dokumentation werden nur die Parameter behandelt, die für die Standardkonfiguration von AlloyDB Omni erforderlich sind, sowie einige empfohlene Parametereinstellungen. Die vollständige Liste der Konfigurationsparameter finden Sie in der Online-Dokumentation zur pgBackRest-Konfigurationsreferenz.

Nach der Konfiguration von pgBackRest müssen die Ziel-Repositorys, in die Sicherungen geschrieben werden, initialisiert werden. Dazu wird die Stanza erstellt, die die in der Konfigurationsdatei festgelegten Parameter verwendet.

So konfigurieren Sie Ihre Datenbank für Sicherungen:

  1. Erstellen Sie die Stanza mit dem Befehl stanza-create.

    sudo -u postgres pgbackrest \
    --config-path=/var/lib/BACKUP_DIR \
    --stanza=omni stanza-create
    
  2. Konfigurieren Sie Ihre Datenbank für Sicherungen.

    /usr/lib/postgresql/18/bin/psql -h localhost -U postgres \
    -c "ALTER SYSTEM SET archive_command='pgbackrest --config-path=BACKUP_DIR --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;"
    

    Ersetzen Sie die folgende Variable:

    • BACKUP_DIR: Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.
  3. Starten Sie AlloyDB Omni neu.

    sudo systemctl restart 18
    
  4. Validieren Sie die Sicherungskonfiguration.

    /usr/lib/postgresql/18/bin/psql -h localhost -U postgres \
    -c "SELECT name, setting
        FROM pg_catalog.pg_settings
        WHERE name IN ('archive_command',
                       'archive_mode',
                       'max_wal_senders',
                       'wal_level')
        ORDER BY name"
    
  5. Führen Sie eine pgBackRest-Prüfung durch.

    sudo -u postgres pgbackrest \
    --config-path=BACKUP_DIR \
    --stanza=omni \
    check
    

    Ersetzen Sie die folgende Variable:

    • BACKUP_DIR: Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.

Sicherung durchführen

  1. Führen Sie eine vollständige Sicherung durch.

    sudo -u postgres pgbackrest \
    --config-path=BACKUP_DIR \
    --stanza=omni \
    --type=full backup
    

    Ersetzen Sie die folgende Variable:

    • BACKUP_DIR: Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.
  2. Führen Sie eine differenzielle Sicherung durch.

    sudo -u postgres pgbackrest \
    --config-path=BACKUP_DIR \
    --stanza=omni \
    --type=diff backup
    

    Ersetzen Sie die folgende Variable:

    • BACKUP_DIR: Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.
  3. Sicherungen melden.

    sudo -u postgres pgbackrest \
    --config-path=BACKUP_DIR \
    --stanza=omni \
    info
    

    Ersetzen Sie die folgende Variable:

    • BACKUP_DIR: Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.

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 Konfiguration datei mit den in der pgBackRest-Konfigurationsreferenz dokumentierten Optionen an Ihre Anforderungen und Vorlieben anpassen.

Dazu gehört die Angabe zusätzlicher Sicherungs-Repositorys auf Remote-Computern oder in der Cloud. Wenn Sie mehrere Repositorys definieren, ist die standardmäßige Sicherungsmaßnahme von pgBackRest, gleichzeitig in alle zu schreiben.

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 Sicherungen vorgestellt 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 den automatischen Authentifizierungsstil 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.

Anhand der folgenden Schritte erweitern Sie die vorherige Konfigurationsdatei so, dass ein Cloud Storage-basiertes pgBackRest-Repository definiert wird:

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

  2. Fügen Sie dem Abschnitt [global] Ihrer Datei pgbackrest.conf 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=PATH_IN_BUCKET
    
    # Cloud Storage backup retention parameters:
    repo2-retention-full=8
    repo2-retention-full-type=count
    

    Ersetzen Sie die folgende Variable:

    • BUCKET_NAME: Name des Cloud Storage-Buckets, in dem pgBackRest Sicherungen speichern soll.
    • PATH_IN_BUCKET: Verzeichnispfad im Cloud Storage-Bucket, in dem pgBackRest Sicherungen speichern soll.
  3. Initialisieren Sie den cloudbasierten Sicherungsspeicherort mit dem pgbackrest stanza-create Befehl:

    sudo -u postgres pgbackrest \
    --config-path=BACKUP_DIR \
    --stanza=omni stanza-create
    

    Ersetzen Sie die folgende Variable:

    • BACKUP_DIR: Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.

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

  • Speicherort im lokalen Dateisystem, der an anderer Stelle in der Konfigurationsdatei als repo1-path definiert ist. Dies ist der standardmäßige Standort, wenn --repo im Befehl pgbackrest nicht angegeben ist.

  • Cloud Storage-Bucket, der mit den in diesem Beispiel eingerichteten Konfigurationsanweisungen repo2-gcs-bucket definiert wird. Wenn Sie den Cloud Storage-Bucket verwenden möchten, geben Sie im Befehl pgbackrest --repo=2 an.

Nächste Schritte