AlloyDB Omni-Cluster mit pgBackRest wiederherstellen

Wählen Sie eine Dokumentenversion aus:

Auf dieser Seite wird beschrieben, wie Sie einen AlloyDB Omni-Cluster mithilfe einer Sicherung wiederherstellen, die mit pgBackRest erstellt wurde. pgBackRest ist eine Open-Source-Sicherungslösung, die im AlloyDB Omni-Docker-Container enthalten ist.

Da AlloyDB Omni mit PostgreSQL kompatibel ist, gelten die im pgBackRest-Handbuch beschriebenen Befehle und Techniken zur Datenwiederherstellung auch für AlloyDB Omni. Auf dieser Seite werden einige häufige Wiederherstellungsaufgaben mit Beispielen für relevante Befehle beschrieben.

Weitere Informationen zum Konfigurieren von pgBackRest für die Verwendung mit AlloyDB Omni finden Sie unter pgBackRest für AlloyDB Omni einrichten.

Informationen zu Kubernetes finden Sie unter Sichern und Wiederherstellen in Kubernetes.

Hinweis

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.

  • Ein Zieldatenbankserver, auf dem dieselbe Hauptversion von AlloyDB Omni ausgeführt wird wie die Sicherung, die Sie wiederherstellen möchten. Weitere Informationen zur Installation von AlloyDB Omni finden Sie unter AlloyDB Omni installieren.

  • Ein pgBackRest-Sicherungs-Repository mit mindestens einer Sicherung der AlloyDB Omni-Quelldatenbank.

  • Genügend freier Speicherplatz auf dem Zielserver für die wiederhergestellte Datenbank.

Übersicht

Wenn Sie eine AlloyDB Omni-Wiederherstellung mit pgBackRest ausführen möchten, verwenden Sie den pgbackrest restore Befehl. Die Parameter, die Sie dem Befehl übergeben, variieren je nach Situation.

Im Allgemeinen führen Sie den Befehl pgbackrest restore mit Flags aus, die die folgenden Informationen enthalten:

  • Der Speicherort Ihrer pgbackrest.conf-Datei.
  • Der Name des pgBackRest-Sicherungs-Repositorys, in dem Sie die Wiederherstellung ausführen möchten. Diese Repositorys werden in der Datei pgbackrest.conf benannt und definiert.
  • Der Speicherort im lokalen Dateisystem, in dem die wiederhergestellten Daten gespeichert werden sollen.
  • Eine Kennung der jeweiligen Sicherung oder des Zeitpunkts, von dem aus Sie die Wiederherstellung ausführen möchten.

Wenn Sie die containerisierten pgbackrest restore-Befehle ausführen, verwenden Sie Dateisystempfade aus der Sicht des Containers. Der Pfad zu Ihrem AlloyDB Omni-Datenverzeichnis ist beispielsweise immer /var/lib/postgresql/data, unabhängig vom Speicherort auf Ihrem Hostserver. Weitere Informationen finden Sie unter Ein Hinweis zu Dateisystempfaden.

Wiederherstellung zu einem bestimmten Zeitpunkt ausführen

In diesem Beispiel werden Daten aus einem pgBackRest-Repository wiederhergestellt und ein bestimmter Zeitpunkt für die Wiederherstellung angegeben. Wenn Sie in der pgbackrest.conf-Datei der Zielumgebung mehrere Repositorys definiert haben, wählt pgBackRest das Repository für die Wiederherstellung basierend auf Verfügbarkeit, erwarteter Geschwindigkeit und anderen Faktoren aus.

Im Beispiel wird Folgendes vorausgesetzt:

  1. Führen Sie in der Zielumgebung eine PITR-Wiederherstellung aus und geben Sie einen Zeitstempel für die Wiederherstellung an:

    Docker

    docker exec CONTAINER_NAME pgbackrest \
      --config-path=/var/lib/postgresql/data \
      --stanza=STANZA \
      --type=time \
      --pg1-path=/var/lib/postgresql/data/data-RESTORED \
      --target="TIMESTAMP" \
      restore

    Ersetzen Sie Folgendes:

    • CONTAINER_NAME: Der Name, den Sie dem AlloyDB Omni-Container bei der Installation zugewiesen haben, z. B. my-omni.

    • STANZA: Die Konfigurationsstanza, die in der Datei pgbackrest.conf definiert ist und auf diese Wiederherstellung angewendet werden soll, z. B. omni.

    • TIMESTAMP: Der Zeitpunkt, zu dem die Wiederherstellung ausgeführt werden soll, z. B. 2024-02-22 19:50:00.

    Podman

    podman exec CONTAINER_NAME pgbackrest \
      --config-path=/var/lib/postgresql/data \
      --stanza=STANZA \
      --type=time \
      --pg1-path=/var/lib/postgresql/data/data-RESTORED \
      --target="TIMESTAMP" \
      restore

    Ersetzen Sie Folgendes:

    • CONTAINER_NAME: Der Name, den Sie dem AlloyDB Omni-Container bei der Installation zugewiesen haben, z. B. my-omni.

    • STANZA: Die Konfigurationsstanza, die in der Datei pgbackrest.conf definiert ist und auf diese Wiederherstellung angewendet werden soll, z. B. omni.

    • TIMESTAMP: Der Zeitpunkt, zu dem die Wiederherstellung ausgeführt werden soll, z. B. 2024-02-22 19:50:00.

  2. Beenden Sie den Container in der Zielumgebung mit dem folgenden Befehl:

    Docker

    docker container stop CONTAINER_NAME

    Podman

    podman container stop CONTAINER_NAME
  3. Benennen Sie das Unterverzeichnis data Ihres Datenverzeichnisses um, um es zu sichern:

    cd DATA_DIR
    sudo mv data data-OLD

    Ersetzen Sie DATA_DIR durch den Dateisystempfad zu Ihrem AlloyDB Omni-Datenverzeichnis.

  4. Verschieben Sie die wiederhergestellten Daten an den richtigen Speicherort und bereinigen Sie postgresql.auto.conf:

    sudo mv data-RESTORED data
    sudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.conf
  5. Starten Sie den AlloyDB Omni-Container mit dem Datenbankserver:

    Docker

    docker container start CONTAINER_NAME

    Podman

    podman container start CONTAINER_NAME

Sie können jetzt mit psql eine Verbindung zu Ihrer Datenbank herstellen und prüfen, ob die Daten wie erwartet wiederhergestellt wurden. Wenn dies der Fall ist, können Sie die zuvor erstellte data-OLD Kopie des data Unterverzeichnisses löschen.

Weitere Informationen zu PITR in pgBackRest finden Sie unter Wiederherstellung zu einem bestimmten Zeitpunkt. Weitere Informationen zum Vorbereiten einer pgbackrest.conf Datei für die Verwendung mit AlloyDB Omni finden Sie unter pgBackRest für AlloyDB Omni einrichten.

Sonstige Optionen

Der Befehl pgbackrest restore ist sehr flexibel und bietet eine Reihe von Optionen und Funktionen, die Sie durch die Übergabe verschiedener Befehlszeilenoptionen steuern können. darunter:

  • Wiederherstellung nur auf geänderte Dateien beschränken.
  • Nur ausgewählte Datenbanken wiederherstellen.

Eine vollständige Anleitung zum Ausführen von Wiederherstellungen in pgBackRest finden Sie unter Wiederherstellen.