Da AlloyDB Omni mit PostgreSQL kompatibel ist, gelten die in der pgBackRest-Anleitung 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.
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 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-Sicherungs-Repository, das mindestens eine Sicherung der AlloyDB Omni-Quelldatenbank enthält.
Auf dem Zielserver ist genügend freier Speicherplatz für die wiederhergestellte Datenbank vorhanden.
Übersicht
Wenn Sie eine AlloyDB Omni-Wiederherstellung mit pgBackRest durchführen möchten, führen Sie den Befehl pgbackrest restore
aus. Die Parameter, die Sie für den Befehl angeben, 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 das Sie die Daten wiederherstellen möchten. Diese Repositorys werden in der Datei
pgbackrest.conf
benannt und definiert. - Der Speicherort im lokalen Dateisystem, in den die wiederhergestellten Daten geschrieben werden sollen.
- Eine Kennung der jeweiligen Sicherung oder des jeweiligen Zeitpunkts, von dem Sie die Wiederherstellung durchführen möchten.
Wenn Sie die containerisierten pgbackrest restore
-Befehle ausführen, müssen Sie Dateisystempfade aus der Sicht des Containers verwenden. Der Pfad zu Ihrem AlloyDB Omni-Datenverzeichnis ist beispielsweise immer /var/lib/postgresql/data
, unabhängig davon, wo es sich auf Ihrem Hostserver befindet. 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 und 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 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 im Stammverzeichnis Ihres AlloyDB Omni-Datenverzeichnisses. Dadurch wird die Datei für den containerisiertenpgbackrest
als/var/lib/postgresql/data
verfügbar.Sie haben kontinuierliche Sicherungen mit Ihrer pgBackRest-Konfiguration aktiviert.
Führen Sie in der Zielumgebung eine PITR-Wiederherstellung durch 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
: Der Konfigurationsabschnitt, der durch diepgbackrest.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
.
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
: Der Konfigurationsabschnitt, der durch diepgbackrest.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
.
Stoppen Sie den Container in der Zielumgebung mit dem folgenden Befehl:
Docker
docker container stop CONTAINER_NAME
Podman
podman container stop CONTAINER_NAME
Benennen Sie das Unterverzeichnis
data
Ihres Datenverzeichnisses zur Sicherheit um:cd DATA_DIR
sudo mv data data-OLD
Ersetzen Sie
DATA_DIR
durch den Dateisystempfad zu Ihrem AlloyDB Omni-Datenverzeichnis.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
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 ja, können Sie die data-OLD
-Kopie des zuvor erstellten Unterverzeichnisses data
löschen.
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 Restore.