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-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 einen AlloyDB Omni-Cluster wiederherstellen, müssen Sie Folgendes tun:

  • Richten Sie pgBackRest für Ihre AlloyDB Omni-Instanz ein und konfigurieren Sie es.

  • Ausreichend Speicherplatz auf dem Zieldateisystem zum Speichern des wiederhergestellten AlloyDB Omni-Datenbankclusters

  • Die gleiche Hauptversion von AlloyDB Omni, die für den Wiederherstellungscontainer wie für den ursprünglichen Quellcontainer verwendet wird.

    Führen Sie folgenden Befehl aus, um die Version von PostgreSQL zu prüfen:

    Docker

    docker exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Docker

    docker exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Podman

    podman exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Podman

    podman exec -u postgres CONTAINER_NAME psql -c "SELECT version();"
    

    Ersetzen Sie die folgende Variable:

    • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1

    Führen Sie den folgenden Befehl aus, um die Version von pgBackRest zu prüfen:

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest version
    

    Docker

    docker exec -u postgres CONTAINER_NAME pgbackrest version
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest version
    

    Podman

    podman exec -u postgres CONTAINER_NAME pgbackrest version
    

    Ersetzen Sie die folgende Variable:

    • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1

    Wenn Ihr Zielcontainer eine andere Version von PostgreSQL, pgBackRest oder beides hat, müssen Sie einen neuen Zielcontainer mit der entsprechenden Version erstellen. Ist dies nicht möglich, müssen Sie eine alternative Methode verwenden, z. B. die in PostgreSQL enthaltenen Dienstprogramme pg_dump oder pg_dumpall, um Ihre Datenbanken zwischen den Versionen zu kopieren. Weitere Informationen finden Sie unter DMP-Datei exportieren.

AlloyDB Omni-Container beenden

Wenn Sie simulieren möchten, dass Ihr AlloyDB Omni-Datenbankcluster nicht verfügbar ist, beenden Sie den Container.

Docker

docker stop CONTAINER_NAME
docker rm CONTAINER_NAME

Docker

docker stop CONTAINER_NAME
docker rm CONTAINER_NAME

Podman

podman stop CONTAINER_NAME
podman rm CONTAINER_NAME

Podman

podman stop CONTAINER_NAME
podman rm CONTAINER_NAME

Ersetzen Sie die folgende Variable:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1

Inaktive AlloyDB Omni-Container erstellen

Docker

docker run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:latest sleep infinity

Docker

docker run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:latest sleep infinity

Podman

podman run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:latest sleep infinity

Podman

podman run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:latest sleep infinity

Ersetzen Sie die folgenden Variablen:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1
  • DATA_DIR: Pfad zum Hostverzeichnis, in dem Ihre Daten gespeichert sind.
  • BACKUP_DIR: Pfad zum externen Verzeichnis, in dem Ihre Sicherungen gespeichert sind.
  • HOST_PORT: TCP-Port auf dem Hostcomputer, unter dem der Container seinen eigenen Port 5432 veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie 5432 an.

Datenverzeichnis entfernen

Wenn Sie Ihren AlloyDB Omni-Datenbankcluster löschen möchten, entfernen Sie das Datenverzeichnis.

Docker

docker exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"

Docker

docker exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"

Podman

podman exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"

Podman

podman exec CONTAINER_NAME sh -c "rm -rf /var/lib/postgresql/data/*"

Ersetzen Sie die folgende Variable:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1

Prüfen, ob Ihre Sicherungen sichtbar sind

Docker

docker exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
info

Docker

docker exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
info

Podman

podman exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
info

Podman

podman exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
info

Ersetzen Sie die folgenden Variablen:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1
  • STANZA_NAME: Name des von Ihnen erstellten Strophen. Beispiel: my-stanza

Sicherung wiederherstellen

Docker

docker exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
restore

Docker

docker exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
restore

Podman

podman exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
restore

Podman

podman exec -u postgres CONTAINER_NAME pgbackrest \
--config-path=/var/lib/postgresql/backups \
--stanza=STANZA_NAME \
restore

Ersetzen Sie die folgenden Variablen:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1
  • STANZA_NAME: Name des von Ihnen erstellten Strophen. Beispiel: my-stanza

Inaktive AlloyDB Omni-Container entfernen

Docker

docker kill CONTAINER_NAME
docker rm CONTAINER_NAME

Docker

docker kill CONTAINER_NAME
docker rm CONTAINER_NAME

Podman

podman kill CONTAINER_NAME
podman rm CONTAINER_NAME

Podman

podman kill CONTAINER_NAME
podman rm CONTAINER_NAME

Ersetzen Sie die folgende Variable:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1

AlloyDB Omni-Container erstellen

Docker

docker run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:latest

Docker

docker run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
google/alloydbomni:latest

Podman

podman run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:latest

Podman

podman run -d --name CONTAINER_NAME \
-v DATA_DIR:/var/lib/postgresql/data \
-v BACKUP_DIR:/var/lib/postgresql/backups \
-p HOST_PORT:5432 \
--restart=always \
docker.io/google/alloydbomni:latest

Ersetzen Sie die folgenden Variablen:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1
  • DATA_DIR: Pfad zum Hostverzeichnis, in dem Ihre Daten gespeichert sind.
  • BACKUP_DIR: Pfad zum externen Verzeichnis, in dem Ihre Sicherungen gespeichert sind.
  • HOST_PORT: TCP-Port auf dem Hostcomputer, unter dem der Container seinen eigenen Port 5432 veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie 5432 an.

Prüfen, ob AlloyDB Omni gestartet wurde

Docker

docker logs -f CONTAINER_NAME

Docker

docker logs -f CONTAINER_NAME

Podman

podman logs -f CONTAINER_NAME

Podman

podman logs -f CONTAINER_NAME

Ersetzen Sie die folgende Variable:

  • CONTAINER_NAME: Der Name, den Sie für Ihren Container verwendet haben. Beispiel: my-omni-1

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. Eine vollständige Anleitung zum Durchführen von Wiederherstellungen finden Sie unter Wiederherstellen.