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 die 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:
Wenn AlloyDB Omni ausgeführt wird, beenden Sie es.
sudo systemctl stop alloydbomni18
Erstellen Sie ein Sicherungsverzeichnis.
sudo mkdir -p BACKUP_DIR
Ersetzen Sie
BACKUP_DIRdurch das Hostverzeichnis, in dem Ihre Sicherungen gespeichert werden.Machen Sie das Sicherungsverzeichnis für
postgreslesbar.sudo chown -R postgres:postgres BACKUP_DIR
Lokale Sicherungen konfigurieren
pgBackRest erstellt Unterverzeichnisse für jede erstellte Sicherung 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 Namen des Hostservers, des PostgreSQL-Clusters oder der Datenbank ü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 für globale und stanzaspezifische Parameter.
Wenn Sie eine Konfigurationsdatei zum Sichern Ihres
AlloyDB Omni-Clusters erstellen und initialisieren möchten, erstellen Sie die Datei pgbackrest.conf im
hostseitigen Sicherungsverzeichnis, das Sie unter
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: Verzeichnisspeicherort, an dem die Sicherungen geschrieben werden. Wir empfehlen einen Speicherort, der sowohl für den Hostserver als auch für den Container sichtbar ist.log-path: Verzeichnisspeicherort, an dem 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 beim Ausführen von pgBackup-Befehlen auf dem Bildschirm (STDOUT) geschrieben 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 istwarn.start-fast: Erzwingt einen Prüfpunkt, um die Sicherungen schnell zu starten. Der Standardwert istn.archive-async: WAL-Segmentdateien asynchron für eine bessere Leistung pushen. Der Standardwert istn.process-max: Maximale Anzahl der Prozesse, die für die Komprimierung und Übertragung verwendet werden sollen. Dieser Wert wird in der Regel aufmax_cpu/4auf einem primären Cluster odermax_cpu/2auf einem Standby-Cluster festgelegt. Der Standardwert ist1.compress-type: Zu verwendender 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 obligatorisch 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:
Erstellen Sie die Stanza mit dem Befehl
stanza-create.sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni stanza-create
Ersetzen Sie
BACKUP_DIRdurch das Sicherungsverzeichnis, das Sie unter Sicherungsverzeichnis erstellen erstellt haben.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=/var/lib/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;"
Starten Sie AlloyDB Omni neu.
sudo systemctl restart alloydbomni18
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"Führen Sie eine pgBackRest-Prüfung durch.
sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni \ check
Sicherung ausführen
Führen Sie eine vollständige Sicherung aus.
sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni \ --type=full backup
Ersetzen Sie
BACKUP_DIRdurch das Sicherungsverzeichnis, das Sie unter Sicherungsverzeichnis erstellen erstellt haben.Führen Sie eine differenzielle Sicherung durch.
sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni \ --type=diff backup
Sicherungen melden.
sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni \ info
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-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:
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 dem Abschnitt
[global]Ihrer Dateipgbackrest.confdiese 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=countErsetzen 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.
Initialisieren Sie den cloudbasierten Sicherungsspeicherort mit dem
pgbackrest stanza-createBefehl:sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni stanza-create
Ersetzen Sie
BACKUP_DIRdurch das Sicherungsverzeichnis, das Sie unter Sicherungsverzeichnis erstellen erstellt haben.
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-pathdefiniert ist. Dies ist der standardmäßige Standort, wenn--repoim Befehlpgbackrestnicht angegeben ist.Cloud Storage-Bucket, der mit den in diesem Beispiel eingerichteten Konfigurationsanweisungen
repo2-gcs-bucketdefiniert wird. Wenn Sie den Cloud Storage-Bucket verwenden möchten, geben Sie im Befehlpgbackrest--repo=2an.