1. Einführung
In diesem Codelab wird gezeigt, wie Sie pgBackRest konfigurieren, um eine AlloyDB Omni-RPM-Bereitstellung mit S3-kompatiblem Objektspeicher zu sichern und wiederherzustellen.
Hinweis:In diesem Codelab stellen Sie eine eigenständige MinIO-Binärdatei auf der VM bereit, die als lokaler, einfacher S3-kompatibler Speicherendpunkt für Tutorials und Tests dient. Verwenden Sie für Produktionsarbeitslasten immer eine unterstützte, aktiv verwaltete S3-kompatible Speicherlösung oder einen Cloud-Objektspeicher.
Voraussetzungen
- Über die Cloud Console auf ein Google Cloud-Projekt und Cloud Shell zugreifen
- Das Google Cloud SDK (
gcloud) ist installiert und konfiguriert.
Lerninhalte
- So richten Sie eine Compute Engine-VM für AlloyDB Omni RPM ein.
- So richten Sie einen lokalen S3-kompatiblen Objektspeicherserver auf der VM ein.
- So konfigurieren Sie pgBackRest für die Verwendung von S3-kompatiblem Objektspeicher als Sicherungs-Repository.
- So führen Sie Sicherungen durch, listen sie auf und prüfen sie.
- So stellen Sie Daten aus einer Sicherung wieder her.
Voraussetzungen
- URL-Link zu AlloyDB Omni-RPMs abrufen Die Links werden an Ihre E‑Mail-Adresse gesendet, die die Repository-URL des Servers enthält. Initialisieren Sie die folgende Umgebungsvariable, damit die URL während des Codelabs verwendet werden kann.
export ALLOYDB_OMNI_REPOSITORY_URL="..." - Ein funktionierendes Terminal mit Zugriff auf Google Cloud. Sie können Cloud Shell für diesen Zweck verwenden.
2. Einrichtung und Anforderungen
Projekteinrichtung
Google Cloud-Projekt erstellen
- Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
- Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
Cloud Shell starten
Sie können Google Cloud zwar per Fernzugriff von Ihrem Laptop aus bedienen, in diesem Codelab verwenden Sie jedoch die Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

- Öffnen Sie die Google Cloud Console und klicken Sie in der Symbolleiste rechts oben auf das Cloud Shell-Symbol.Sie können Cloud Shell auch auf eine der folgenden Arten öffnen:
- Wenn Sie die Google Cloud Console verwenden, drücken Sie die Tasten „G“ und dann „S“.
- Klicken Sie auf diesen Link.
Die Bereitstellung und Verbindung mit der Umgebung dauert in der Regel nur wenige Augenblicke. Wenn dieser Vorgang abgeschlossen ist, sehen Sie in etwa Folgendes:
{: width="624"}
3. Compute Engine-VM erstellen
In diesem Abschnitt erstellen Sie mit dem Befehlszeilentool gcloud eine einzelne Compute Engine-VM. Sie verwenden ein Rocky Linux 9-Image, das vollständig mit AlloyDB Omni-RPMs kompatibel ist.
- Definieren Sie Umgebungsvariablen für Ihre Projekt-ID, den VM-Namen, den Maschinentyp, die Zone und die Region.
export PROJECT="your-project-id" export INSTANCE_NAME="alloydb-omni-pgbackrest" export MACHINE_TYPE="e2-standard-4" export ZONE="us-central1-c" export REGION="us-central1" - Melden Sie sich mit Ihrem Google Cloud-Konto an und konfigurieren Sie das Standardprojekt.
gcloud auth login gcloud config set project $PROJECT - Erstellen Sie eine Firewallregel, um SSH-Verbindungen zu Ihrer VM zuzulassen.
gcloud compute firewall-rules create allow-ssh-alloydb-omni \ --project=$PROJECT \ --direction=INGRESS \ --action=allow \ --rules=tcp:22 \ --source-ranges="0.0.0.0/0" - Da die VM ohne öffentliche IP-Adresse erstellt wird, konfigurieren Sie einen Cloud Router und ein Cloud NAT-Gateway, damit die VM auf externe Paket-Repositories zugreifen und die erforderliche Software herunterladen kann.
gcloud compute routers create alloydb-omni-router \ --project=$PROJECT \ --network=default \ --region=$REGION gcloud compute routers nats create alloydb-omni-nat \ --project=$PROJECT \ --router=alloydb-omni-router \ --region=$REGION \ --nat-all-subnet-ip-ranges \ --auto-allocate-nat-external-ips - Achten Sie darauf, dass Ihr VPC-Netzwerk eine gültige Standard-Internetgatewayroute hat. In einigen freigegebenen Umgebungen oder Sandbox-Umgebungen werden Standardrouten gelegentlich durch Bereinigungsskripts entfernt. Diese Route ist erforderlich, damit Cloud NAT ausgehenden Traffic an das Internet weiterleiten kann.
gcloud compute routes create default-internet-route \ --project=$PROJECT \ --network=default \ --destination-range=0.0.0.0/0 \ --next-hop-gateway=default-internet-gateway - Erstellen Sie die Compute Engine-VM-Instanz mit Rocky Linux 9 und einem 20 GB großen abgestimmten nichtflüchtigen Speicher. Verwenden Sie zur Erhöhung der Sicherheit das Flag
--no-address, damit der VM keine öffentliche IP-Adresse zugewiesen wird.gcloud compute instances create $INSTANCE_NAME \ --project=$PROJECT \ --zone=$ZONE \ --machine-type=$MACHINE_TYPE \ --image-family=rocky-linux-9 \ --image-project=rocky-linux-cloud \ --boot-disk-size=20GB \ --boot-disk-type=pd-balanced \ --no-address - Prüfen Sie nach dem Erstellen der VM den Status der VM.
gcloud compute instances list --filter="name=$INSTANCE_NAME" --project=$PROJECT
4. S3-kompatiblen Objektspeicher einrichten
In diesem Abschnitt stellen Sie eine Verbindung zu Ihrer VM her, bereiten die Umgebung vor und richten einen lokalen S3-kompatiblen Objektspeicherserver (minio) sowie einen S3-Client (mc) zum Hosten Ihres Sicherungs-Buckets ein.
- Stellen Sie eine SSH-Verbindung zur VM über Identity-Aware Proxy (IAP) her. Da die VM keine öffentliche IP-Adresse hat, wird die SSH-Verbindung von
gcloudautomatisch über IAP getunnelt.gcloud compute ssh $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --tunnel-through-iap - Installieren Sie das Paket
policycoreutils-python-utils, damit die SELinux-Richtlinie später bei Bedarf konfiguriert werden kann.sudo dnf install -y policycoreutils-python-utils - Laden Sie die S3-kompatible Server-Binärdatei (
minio) herunter.curl -L -o minio \ https://github.com/minio/minio/releases/download/RELEASE.2024-05-10T01-41-38Z/minio.linux-amd64.RELEASE.2024-05-10T01-41-38Z chmod +x minio sudo mv minio /usr/local/bin/ - Erstellen Sie ein Datenverzeichnis für den Objektspeicherserver.
sudo mkdir -p /var/lib/s3-storage/data - Starten Sie den S3-kompatiblen Server im Hintergrund mit Beispielanmeldedaten. Der geheime Schlüssel muss mindestens 8 Zeichen lang sein.
export MINIO_ROOT_USER="s3admin" export MINIO_ROOT_PASSWORD="s3password" nohup sudo env MINIO_ROOT_USER="$MINIO_ROOT_USER" \ MINIO_ROOT_PASSWORD="$MINIO_ROOT_PASSWORD" \ /usr/local/bin/minio server /var/lib/s3-storage/data \ --console-address ":9001" \ > s3-server.log 2>&1 & - Prüfen Sie, ob der S3-kompatible Server ausgeführt wird.
ps aux | grep minio - Laden Sie den S3-Client (
mc) herunter und installieren Sie ihn, um Buckets zu verwalten.curl -L -o mc \ https://github.com/minio/mc/releases/download/RELEASE.2024-05-09T17-04-24Z/mc.linux-amd64.RELEASE.2024-05-09T17-04-24Z chmod +x mc sudo mv mc /usr/local/bin/ - Konfigurieren Sie den S3-Client-Alias (
s3repo) und erstellen Sie einen Bucket mit dem Namenalloydb-backups.mc alias set s3repo http://localhost:9000 s3admin s3password mc mb s3repo/alloydb-backups
5. AlloyDB Omni installieren
In diesem Abschnitt installieren und konfigurieren Sie AlloyDB Omni.
- Definieren Sie Umgebungsvariablen auf der VM für das Datenverzeichnis, die AlloyDB Omni-Repository-URL und ein starkes Passwort für den PostgreSQL-Administratornutzer
postgres. Ersetzen Sie die URL durch die URL, die Sie über das Registrierungsformular erhalten haben. Hinweis:Das Übergeben von Passwörtern über Umgebungsvariablen in der Befehlszeile (z.B.export PGDATA="/var/lib/alloydbomni" export ALLOYDB_OMNI_REPOSITORY_URL="..." export PGPASSWORD="YourStrongPassword123!"PGPASSWORD=$PGPASSWORD) wird hier der Einfachheit halber im Codelab verwendet, kann aber das Passwort in Prozesslisten offenlegen. Verwenden Sie in der Produktion sicherere Methoden wie eine.pgpass-Datei oder einen Secret Manager. - Erstellen Sie das Datenverzeichnis, in dem AlloyDB Omni seine Datenbankdateien speichert.
sudo mkdir -p $PGDATA - Konfigurieren Sie das YUM-Repository auf Ihrer VM, indem Sie die Repository-Konfigurationsdatei erstellen.
sudo tee /etc/yum.repos.d/alloydbomni.repo << EOF [alloydbomni] name=alloydbomni baseurl=$ALLOYDB_OMNI_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=1 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF - Aktualisieren Sie den YUM-Cache.
sudo yum makecache - Installieren Sie Version 18 des AlloyDB Omni-RPM-Pakets.
sudo dnf install -y alloydbomni18 - Initialisieren Sie die AlloyDB Omni-Datenbankinstanz.
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb - Deaktivieren Sie den SELinux-Erzwingungsmodus vorübergehend, um die Einrichtung zu erleichtern, wie in Codelabs üblich.
sudo setenforce 0 - AlloyDB Omni-Datenbankinstanz vorbereiten
sudo PGPASSWORD=$PGPASSWORD PGDATA=$PGDATA /usr/lib/postgresql/18/bin/alloydbomni18-setup preparedb - Aktivieren und starten Sie den AlloyDB Omni-Dienst
systemd.sudo systemctl enable alloydbomni18 sudo systemctl start alloydbomni18 - Prüfen Sie, ob der AlloyDB Omni-Dienst aktiv ist und ordnungsgemäß ausgeführt wird.
sudo systemctl status alloydbomni18
6. pgBackRest konfigurieren
In diesem Abschnitt installieren Sie pgBackRest aus dem AlloyDB Omni Common-Repository, konfigurieren /etc/pgbackrest/pgbackrest.conf so, dass Ihr S3-kompatibler Objektspeicher-Bucket als Sicherungsrepository verwendet wird, und aktivieren die WAL-Archivierung in AlloyDB Omni.
- Definieren Sie eine Umgebungsvariable auf der VM für die URL Ihres AlloyDB Omni Common-Repositorys. Ersetzen Sie die URL durch die URL, die Sie über das Registrierungsformular erhalten haben.
export ALLOYDB_OMNI_COMMON_REPOSITORY_URL="..." - Konfigurieren Sie das pgBackRest-YUM-Repository und installieren Sie
pgbackrest-2.58.0.sudo tee /etc/yum.repos.d/pgbackrest.repo <<EOF [pgbackrest] name=Google Alloydb Omni Orchestrator baseurl=$ALLOYDB_OMNI_COMMON_REPOSITORY_URL enabled=1 repo_gpgcheck=0 gpgcheck=0 gpgkey=https://dl.google.com/linux/linux_signing_key.pub EOF sudo dnf install -y pgbackrest-2.58.0 - Erstellen Sie die Spool- und Log-Verzeichnisse für pgBackRest und weisen Sie den Nutzer
postgresals Eigentümer zu.sudo mkdir -p /var/log/pgbackrest sudo mkdir -p /var/lib/pgbackrest sudo chown -R postgres:postgres /var/log/pgbackrest sudo chown -R postgres:postgres /var/lib/pgbackrest - Erstellen Sie
/etc/pgbackrest/pgbackrest.confund konfigurieren Sie strenge Dateiberechtigungen.sudo mkdir -p /etc/pgbackrest/conf.d sudo tee /etc/pgbackrest/pgbackrest.conf <<EOF [global] spool-path=/var/lib/pgbackrest lock-path=/var/lib/pgbackrest # S3 Repository details repo1-type=s3 repo1-s3-endpoint=http://localhost:9000 repo1-s3-bucket=alloydb-backups repo1-s3-key=s3admin repo1-s3-key-secret=s3password repo1-s3-region=us-east-1 repo1-s3-uri-style=path repo1-path=/pgbackrest # Retention policy repo1-retention-full=3 repo1-retention-full-type=count repo1-retention-diff=16 # Force immediate checkpoint during backup start start-fast=y # Logging log-path=/var/log/pgbackrest log-level-console=info log-level-file=info # Compression compress-type=zst # Asynchronous WAL archiving 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=$PGDATA EOF sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf sudo chmod 640 /etc/pgbackrest/pgbackrest.conf - Initialisieren Sie die pgBackRest-Stanza als Nutzer
postgres. Prüfen Sie, obsudo -u postgres pgbackrest --stanza=omni stanza-createstanza-create command end: completed successfullyin der Ausgabe angezeigt wird. - Konfigurieren Sie die AlloyDB Omni-Archivierungsparameter mit
psql.sudo -u postgres /usr/lib/postgresql/18/bin/psql \ -c "ALTER SYSTEM SET archive_mode = 'on';" \ -c "ALTER SYSTEM SET archive_command = 'pgbackrest --stanza=omni archive-push %p';" \ -c "ALTER SYSTEM SET wal_level = 'replica';" \ -c "ALTER SYSTEM SET max_wal_senders = 10;" - Starten Sie den AlloyDB Omni-Dienst neu, um die Archivierungsänderungen zu übernehmen.
sudo systemctl restart alloydbomni18 - Überprüfen Sie die Integrität der pgBackRest-Konfiguration und die Konnektivität.
Prüfen Sie, obsudo -u postgres pgbackrest --stanza=omni checkcheck command end: completed successfullyin der Ausgabe angezeigt wird.
7. Sicherung durchführen
In diesem Abschnitt verwenden Sie pgBackRest, um eine Vollsicherung und eine differenzielle Sicherung Ihrer AlloyDB Omni-Datenbank in einem S3-kompatiblen Objektspeicher durchzuführen.
- Lösen Sie eine vollständige Sicherung mit
pgbackrestaus.sudo -u postgres pgbackrest \ --stanza=omni \ --type=full backup - Lösen Sie eine differenzielle Sicherung mit
pgbackrestaus. Hinweis:Zu den anderen unterstützten Sicherungstypen gehörtsudo -u postgres pgbackrest \ --stanza=omni \ --type=diff backupincr(inkrementell).
8. Sicherungen auflisten und überprüfen
In diesem Abschnitt lassen Sie sich die Sicherungen auflisten und prüfen, ob sie erfolgreich abgeschlossen wurden.
- Sicherungen mit dem Befehl
pgbackrest infoauflisten Prüfen Sie, ob in der Ausgabesudo -u postgres pgbackrest \ --stanza=omni infostatus: okzusammen mit Sicherungsinformationen für jeden ausgeführten Sicherungsbefehl angezeigt wird:- Vollständiges Back-up :
full backup:(z. B.F 20260908-093545F) - Differenzielle Sicherung :
diff backup:(z. B.F_ D 20260908-093545F_20260908-094016D)
- Vollständiges Back-up :
- Prüfen Sie die im Bucket gespeicherten Sicherungsdateien mit dem S3-Client (
mc). In der Ausgabe solltenmc ls s3repo/alloydb-backups/pgbackrest/backup,archiveundstanza.infoangezeigt werden.
9. Daten aus einer Sicherung wiederherstellen
In diesem Abschnitt beenden Sie den AlloyDB Omni-Datenbankdienst und stellen Daten aus einer bestimmten Sicherung mit pgbackrest wieder her.
Achtung:Beim Wiederherstellen wird Ihre Datenbank beendet und alle Datenbankdaten werden überschrieben.
- Definieren Sie eine Umgebungsvariable für die Sicherungs-ID, aus der Sie Daten wiederherstellen möchten. Ersetzen Sie den Wert durch die Sicherungs-ID, die in der Ausgabe von
pgbackrest infoangezeigt wird.export BACKUPID="20260908-093545F" - Beenden Sie den AlloyDB Omni-Dienst und prüfen Sie, ob er inaktiv ist.
Prüfen Sie, ob in der Ausgabesudo systemctl stop alloydbomni18 sudo systemctl status alloydbomni18Active: inactiveangezeigt wird. - Führen Sie
pgbackrest restoremit der Option--deltaaus, um die Datenbank aus dem ausgewählten Backup wiederherzustellen. Prüfen Sie, obsudo -u postgres pgbackrest \ --stanza=omni \ --set=$BACKUPID \ --delta restorerestore command end: completed successfullyin der Ausgabe angezeigt wird. - Starten Sie den AlloyDB Omni-Dienst und prüfen Sie, ob er aktiv ist und ausgeführt wird.
Prüfen Sie, ob in der Ausgabesudo systemctl start alloydbomni18 sudo systemctl status alloydbomni18Active: active (running)angezeigt wird.
10. Bereinigung und Umfrage
Nach Abschluss des Codelabs können Sie die Google Cloud-Ressourcen bereinigen, um unerwünschte Kosten zu vermeiden.
- Trennen Sie die Verbindung zu Ihrer SSH-Sitzung auf der VM, um zu Ihrem lokalen Cloud Shell-Terminal zurückzukehren.
exit - Löschen Sie die Compute Engine-VM-Instanz.
gcloud compute instances delete $INSTANCE_NAME --zone=$ZONE --project=$PROJECT --quiet - Löschen Sie die Firewallregel, die für den SSH-Zugriff erstellt wurde.
gcloud compute firewall-rules delete allow-ssh-alloydb-omni --project=$PROJECT --quiet - Löschen Sie das Cloud NAT-Gateway und den Cloud Router.
gcloud compute routers nats delete alloydb-omni-nat --router=alloydb-omni-router --region=$REGION --project=$PROJECT --quiet gcloud compute routers delete alloydb-omni-router --region=$REGION --project=$PROJECT --quiet - Löschen Sie die benutzerdefinierte Route.
gcloud compute routes delete default-internet-route --project=$PROJECT --quiet
11. Glückwunsch
Herzlichen Glückwunsch zum Abschluss des Codelabs! Sie haben pgBackRest erfolgreich konfiguriert, um eine AlloyDB Omni-RPM-Bereitstellung mit S3-kompatiblem Objektspeicher zu sichern und wiederherzustellen.
Behandelte Themen
- So richten Sie eine Compute Engine-VM für AlloyDB Omni RPM ein.
- So richten Sie einen S3-kompatiblen Objektspeicher-Bucket ein.
- pgBackRest mit einem S3-kompatiblen Repository konfigurieren
- So führen Sie vollständige und differenzielle Sicherungen durch, listen sie auf und überprüfen sie.
- So stellen Sie Daten aus einer Sicherung mit pgBackRest wieder her.
Weitere Informationen finden Sie in der AlloyDB Omni-Übersicht.