AlloyDB Omni-Cluster mit pgBackRest wiederherstellen

Auf dieser Seite erfahren Sie, wie Sie einen AlloyDB Omni-Cluster mit einer Sicherung wiederherstellen, die mit pgBackRest erstellt wurde, der 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 Verfahren zur Datenwiederherstellung auch für AlloyDB Omni. Auf dieser Seite werden einige gängige Wiederherstellungsaufgaben mit Beispielen für relevante Befehle veranschaulicht.

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 Daten in Kubernetes sichern und wiederherstellen.

Hinweise

Bevor Sie AlloyDB Omni für die Verwendung mit pgBackrest konfigurieren, muss AlloyDB Omni auf einem von Ihnen verwalteten Server installiert und ausgeführt werden.

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

  • Ein pgBackRest-Sicherungsverzeichnis mit mindestens einer Sicherung der Quell-AlloyDB Omni-Datenbank.

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

Übersicht

Führen Sie den Befehl pgbackrest restore aus, um eine AlloyDB Omni-Wiederherstellung mit pgBackRest durchzuführen. 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:

  • Speicherort der pgbackrest.conf-Datei.
  • Der Name des pgBackRest-Sicherungsverzeichnisses, in dem Sie wiederherstellen möchten. Diese Repositories werden in der Datei pgbackrest.conf benannt und definiert.
  • Der Speicherort im lokalen Dateisystem, an dem die wiederhergestellten Daten gespeichert werden sollen.
  • Eine Kennung der Sicherung oder des Zeitpunkts, von dem aus Sie wiederherstellen möchten.

Verwenden Sie beim Ausführen der containerisierten pgbackrest restore-Befehle Dateisystempfade aus der Sicht des Containers. Der Pfad zu Ihrem AlloyDB Omni-Datenverzeichnis lautet beispielsweise immer /var/lib/postgresql/data, unabhängig von seinem Speicherort auf dem 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 Repositories definiert haben, wählt pgBackRest das Repository aus, aus dem die Wiederherstellung erfolgen soll, basierend auf Verfügbarkeit, erwarteter Geschwindigkeit und anderen Faktoren.

Für das Beispiel wird Folgendes vorausgesetzt:

  • Sie haben eine pgbackrest.conf-Datei auf der obersten Ebene des Zieldatenverzeichnisses von AlloyDB Omni. Dadurch wird die Datei für den containerisierten pgbackrest als /var/lib/postgresql/data verfügbar gemacht.

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

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

    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: der Konfigurationsabschnitt, der in der Datei pgbackrest.conf für diese Wiederherstellung definiert ist, z. B. omni.

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

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

    docker container stop CONTAINER_NAME
  3. Benennen Sie aus Sicherheitsgründen das Unterverzeichnis data Ihres Datenverzeichnisses um:

    cd DATA_DIR
    sudo mv data data-OLD

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

  4. Verschieben Sie die wiederhergestellten Daten an ihren 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 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. In diesem Fall können Sie die data-OLD-Kopie des zuvor erstellten Unterverzeichnisses data 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.

Weitere Optionen

Der Befehl pgbackrest restore ist sehr flexibel und bietet eine Reihe von Optionen und Funktionen, die Sie über verschiedene Befehlszeilenoptionen steuern können. darunter:

  • Begrenzung der Wiederherstellung auf geänderte Dateien
  • Nur ausgewählte Datenbanken wiederherstellen

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