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 Cluster mit TDE 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:
- Installieren und führen Sie AlloyDB Omni auf einem Server aus, den Sie steuern.
Basiskonfiguration mit lokalen Sicherungen
Die Schritte in diesem Abschnitt führen Sie durch eine einfache Einrichtung von pgBackRest. Bei einfachen Konfigurationen sind keine geplanten Sicherungen möglich. 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-Backups zu erstellen. So richten Sie ein neues Verzeichnis ein:
Wenn AlloyDB Omni ausgeführt wird, beenden Sie es.
sudo systemctl stop alloydbomni18
Erstellen Sie ein Sicherungsverzeichnis.
sudo mkdir -p BACKUP_DIR
Ersetzen Sie die folgende Variable:
BACKUP_DIR: Das Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.
Machen Sie das Sicherungsverzeichnis für
postgreslesbar.sudo chown -R postgres:postgres BACKUP_DIR
Ersetzen Sie die folgende Variable:
BACKUP_DIR: Das Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.
Lokale Sicherungen konfigurieren
pgBackRest erstellt für jede Sicherung Unterverzeichnisse und enthält eine Manifestdatei im Nur-Text-Format.
pgBackRest verwendet den Begriff „Stanza“ für die Konfiguration eines PostgreSQL-Datenbankclusters. Der Strophenname 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.
In das Repository werden Sicherungen geschrieben. pgBackRest unterstützt das Schreiben in mehrere Repositorys in einer bestimmten Strophe. Die meisten Konfigurationsparameter für Repositorys werden mit einem numerischen Wert indexiert. Beispiel: repo1-. Parameter, die sich auf PostgreSQL-Cluster beziehen, werden ebenfalls unabhängig indexiert. Parameter, die für den ersten PostgreSQL-Cluster in einem Stanza spezifisch sind, haben beispielsweise das Präfix pg1-.
pgBackRest verwendet eine Konfigurationsdatei namens pgbackrest.conf, um globale und stanzaspezifische Parameter zu speichern.
Um eine Konfigurationsdatei zum Sichern Ihres AlloyDB Omni-Clusters zu erstellen und zu initialisieren, erstellen Sie die Datei pgbackrest.conf im hostseitigen Sicherungsverzeichnis, das Sie in 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 bei Bedarf an Ihre spezifischen Anforderungen angepasst werden, z. B. die folgenden:
repo1-path: Der 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, nicht zusammen mit den Sicherungen selbst, passen Sie diesen Parameter an.repo1-retention-full: Anzahl der Vollsicherungen, die beibehalten werden sollen.repo1-retention-full-type: Gibt an, ob die Kundenbindung nach Anzahl oder Zeitraum (Tage) gemessen wird.repo1-retention-diff: Anzahl der beizubehaltenden differenziellen Sicherungen.
Weitere nicht kritische, aber empfohlene Parametereinstellungen, die mit AlloyDB Omni in der Konfigurationsdatei kompatibel sind, sind:
log-level-console: Die Protokollierungsebene, die beim Ausführen von pgBackup-Befehlen auf dem Bildschirm (STDOUT) ausgegeben wird. Sie können diesen Wert in der Konfigurationsdatei an Ihre Anforderungen anpassen oder mit dem Befehlszeilenargument--log-level-consoleüberschreiben. Der Standardwert istwarn.start-fast: Erzwingt einen Prüfpunkt, damit die Sicherungen schnell gestartet werden. Der Standardwert istn.archive-async: WAL-Segmentdateien asynchron übertragen, um die Leistung zu verbessern. Der Standardwert istn.process-max: Maximale Anzahl der Prozesse, die für die Komprimierung und Übertragung verwendet werden sollen. Dies ist in der Regel aufmax_cpu/4in einem primären Cluster oder aufmax_cpu/2in einem Standby-Cluster festgelegt. Der Standardwert ist1.compress-type: Der zu verwendende Komprimierungsalgorithmus. Der Standardwert istgz.
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. Eine vollständige Liste der Konfigurationsparameter finden Sie in der pgBackRest Configuration Reference (pgBackRest-Konfigurationsreferenz) in der Online-Dokumentation.
Nachdem Sie pgBackRest konfiguriert haben, müssen die Ziel-Repositories, in die Back-ups geschrieben werden, initialisiert werden. Dazu erstellen Sie die Stanza, die die in der Konfigurationsdatei festgelegten Parameter verwendet.
Führen Sie die folgenden Schritte aus, um Ihre Datenbank für Sicherungen zu konfigurieren:
Erstellen Sie den Stanza mit dem Befehl
stanza-create.sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni stanza-create
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: Das Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.
Starten Sie AlloyDB Omni neu.
sudo systemctl restart 18
Sicherungskonfiguration validieren
/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"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: Das Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.
Sicherung erstellen
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: Das Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.
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: Das Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.
Sicherungen melden
sudo -u postgres pgbackrest \ --config-path=BACKUP_DIR \ --stanza=omni \ info
Ersetzen Sie die folgende Variable:
BACKUP_DIR: Das 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 Konfigurationsdatei mit den in der pgBackRest-Konfigurationsreferenz dokumentierten Optionen an Ihre Anforderungen und Vorlieben anpassen.
Dazu gehört die Angabe zusätzlicher Sicherungs-Repositories 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 Backup-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:
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.
Fügen Sie diese Zeilen dem
[global]-Abschnitt Ihrerpgbackrest.conf-Datei 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=countErsetzen Sie die folgende Variable:
BUCKET_NAME: Name des Cloud Storage-Buckets, in dem pgBackRest Sicherungen speichern soll.PATH_IN_BUCKET: Der Verzeichnispfad im Cloud Storage-Bucket, in dem pgBackRest Sicherungen speichern soll.
Initialisieren Sie den cloudbasierten Sicherungsspeicherort mit dem Befehl
pgbackrest stanza-create:sudo -u postgres pgbackrest \ --config-path=BACKUP_DIR \ --stanza=omni stanza-create
Ersetzen Sie die folgende Variable:
BACKUP_DIR: Das Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.
Nachdem Sie das Backup-Repository in Ihrem Cloud Storage-Bucket mit dem Befehl pgbackrest stanza-create initialisiert haben, sichert pgBackRest möglicherweise an zwei Speicherorten:
Dem Speicherort im lokalen Dateisystem, der an anderer Stelle in der Konfigurationsdatei als
repo1-pathdefiniert ist. Dies ist der standardmäßige Standort, wenn--repoim Befehlpgbackrestnicht angegeben ist.Dem Cloud Storage-Bucket, der mit den in diesem Beispiel eingerichteten
repo2-gcs-bucket-Konfigurationsanweisungen definiert wird. Wenn Sie den Cloud Storage-Bucket verwenden möchten, geben Sie--repo=2im Befehlpgbackrestan.