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
oderpg_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 Port5432
veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie5432
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 Port5432
veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie5432
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.