AlloyDB Omni-Cluster mit pgBackRest wiederherstellen

Wählen Sie eine Dokumentationsversion 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.

Hinweise

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 wie auf dem Quelldatenbankserver ausgeführt wird. Weitere Informationen zur Installation von AlloyDB Omni finden Sie unter AlloyDB Omni installieren.

    Der Zielserver kann derselbe Computer wie der Quellserver sein.

  • Ein pgBackRest-Sicherungs-Repository, das mindestens eine Sicherung der AlloyDB Omni-Quelldatenbank enthält.

  • Auf dem Zielserver muss ausreichend freier Speicherplatz für die wiederhergestellte Datenbank vorhanden sein.

Übersicht

Wenn Sie eine AlloyDB Omni-Wiederherstellung mit pgBackRest durchführen möchten, führen Sie den Befehl pgbackrest restore aus. Die Argumente, die Sie für den Befehl angeben, variieren je nach Ihrer 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, aus dem Sie wiederherstellen möchten. Diese Repositories werden in der Datei pgbackest.conf benannt und definiert.
  • Der Speicherort im lokalen Dateisystem, an den die wiederhergestellten Daten geschrieben werden sollen.
  • Eine Kennung der Sicherung oder des Zeitpunkts, aus dem Sie die Wiederherstellung durchführen möchten.

Wenn Sie die containerisierten pgbackrest restore-Befehle ausführen, denken Sie daran, Dateisystempfade aus der Perspektive des Containers zu verwenden. Der Pfad zu Ihrem AlloyDB Omni-Datenverzeichnis ist beispielsweise immer /mnt/disks/pgsql, unabhängig von seinem Speicherort auf Ihrem Hostserver. Weitere Informationen finden Sie unter Hinweis zu Dateisystempfaden.

Wiederherstellung zu einem bestimmten Zeitpunkt ausführen

In diesem Beispiel werden Daten aus einem pgBackRest-Repository wiederhergestellt. Dabei wird 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 anhand von Verfügbarkeit, erwarteter Geschwindigkeit und anderen Faktoren aus.

Im Beispiel wird Folgendes vorausgesetzt:

  • Sie haben eine pgbackrest.conf-Datei auf der obersten Ebene Ihres AlloyDB Omni-Zieldatenverzeichnisses. Dadurch wird die Datei für den containerisierten pgbackrest als /mnt/disks/pgsql/pgbackrest.conf verfügbar.

  • Sie haben kontinuierliche Sicherungen mit Ihrer pgBackRest-Konfiguration aktiviert.

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

    sudo docker exec pg-service pgbackrest \
      --config-path=/mnt/disks/pgsql \
      --stanza=STANZA \
      --type=time \
      --pg1-path=/mnt/disks/pgsql/data-RESTORED \
      --target="TIMESTAMP" \
      restore

    Ersetzen Sie Folgendes:

    • STANZA: Der Konfigurationsabschnitt, der durch die pgbackrest.conf-Datei definiert wird und auf diese Wiederherstellung angewendet werden soll, z. B. omni.

    • TIMESTAMP: die Uhrzeit, zu der die Wiederherstellung erfolgen soll, z. B. 2024-02-22 19:50:00.

  2. Beenden Sie den Datenbankserver in der Zielumgebung:

    sudo alloydb database-server stop
  3. Benennen Sie das Unterverzeichnis data Ihres Datenverzeichnisses um, um Datenverlust zu vermeiden:

    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 Ort 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 Datenbankserver:

    sudo alloydb database-server start

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

Weitere Informationen zur 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.

Weitere 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:

  • Die Wiederherstellung auf geänderte Dateien beschränken
  • Nur ausgewählte Datenbanken werden wiederhergestellt.

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