Auf dieser Seite erfahren Sie, wie Sie einen Datenbankcluster mithilfe einer Cloud Storage-Sicherung auf einem einzelnen Server klonen.
Im folgenden Workflow werden die Schritte zum Klonen erläutert:
- Konfigurieren Sie die Datei
pgbackrest.conf
für den Zugriff auf die Cloud Storage-Sicherung. - Prüfen Sie mit
pgBackRest
-Befehlen, ob auf die Quellsicherungen zugegriffen werden kann. - Verwenden Sie
pgBackRest
-Befehle, um die Sicherung auf dem Zielserver wiederherzustellen.
Hinweise
- Zugriff auf den vollständigen Pfad des Cloud Storage-Bucket, in dem sich die Sicherung des Quelldatenbankclusters befindet. Dies ist derselbe Pfad, den Sie beim Erstellen der
BackupPlan
-Ressource für Ihren Quelldatenbankcluster verwendet haben. - Es wird ein AlloyDB Omni-Datenbankcluster mit einem einzelnen Server als Ziel erstellt. Weitere Informationen zur Installation von AlloyDB Omni in Kubernetes finden Sie unter AlloyDB Omni installieren.
- Sie müssen als Nutzer
postgres
in der Datenbank angemeldet sein.
pgBackRest
-Datei auf dem Zielserver konfigurieren
Konfigurieren Sie die Datei pgBackRest
so, dass der Zieldatenbankcluster auf den Cloud Storage-Bucket zugreifen kann, in dem sich die Quellsicherungen befinden.
Rufen Sie auf dem Zielserver das Verzeichnis
alloydb-data
auf.Erstellen Sie eine
pgBackRest
-Konfigurationsdatei, um auf in Cloud Storage gespeicherte Sicherungen zuzugreifen:$ cat << EOF > /backup/pgbackrest.conf [db] pg1-path=/mnt/disks/pgsql/data-restored pg1-socket-path=/tmp pg1-user=pgbackrest [global] log-path=/obs/pgbackrest log-level-file=info repo1-type=gcs repo1-gcs-bucket=GCS_SOURCE_BACKUP_BUCKET_NAME repo1-path=GCS_SOURCE_BACKUP_BUCKET_PATH repo1-storage-ca-file=/etc/ssl/certs/ca-certificates.crt repo1-retention-full=9999999 repo1-gcs-key-type=auto
Ersetzen Sie Folgendes:
- GCS_SOURCE_BACKUP_BUCKET_NAME: Der Name des Cloud Storage-
pgBackRest
-Buckets, den Sie im Cluster der Quelldatenbank erstellt haben. Dies ist nicht die vollständige URL zum Bucket. Fügen Sie dem Bucket-Namen kein Präfix vorangestellt mitgs://
hinzu. - GCS_SOURCE_BACKUP_BUCKET_PATH: Der Pfad zum Verzeichnis, in das der AlloyDB Omni-Betriebssystemadministrator Sicherungen im Cloud Storage-Bucket für den Quelldatenbankcluster schreibt. Der Pfad muss absolut sein und mit
/
beginnen.
repo1-gcs-key-type
ist aufauto
festgelegt, um das Dienstkonto der Instanz zu verwenden. Weitere Informationen zu anderen Optionen finden Sie unter GCS-Repository-Schlüsseltypoption.- GCS_SOURCE_BACKUP_BUCKET_NAME: Der Name des Cloud Storage-
Quellsicherungen auf dem Zielserver prüfen
Melden Sie sich auf dem Zielserver an und führen Sie pgBackRest
-Befehle aus, um zu prüfen, ob auf dem Zielserver auf die Sicherungen des Quelldatenbankclusters zugegriffen werden kann:
Docker
sudo docker exec CONTAINER_NAME pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 info
Podman
sudo podman exec CONTAINER_NAME pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 info
Ersetzen Sie CONTAINER_NAME
durch den Namen eines neuen AlloyDB Omni-Containers, z. B. my-omni-1
.
Hier ist eine Beispielantwort:
stanza: db
status: ok
cipher: none
db (current)
wal archive min/max (15): 000000010000000000000002/00000001000000000000000D
full backup: 20240213-231400F
timestamp start/stop: 2024-02-13 23:14:00+00 / 2024-02-13 23:17:14+00
wal start/stop: 000000010000000000000003 / 000000010000000000000003
database size: 38.7MB, database backup size: 38.7MB
repo1: backup set size: 4.6MB, backup size: 4.6MB
incr backup: 20240213-231400F_20240214-000001I
timestamp start/stop: 2024-02-14 00:00:01+00 / 2024-02-14 00:00:05+00
wal start/stop: 00000001000000000000000D / 00000001000000000000000D
database size: 38.7MB, database backup size: 488.3KB
repo1: backup set size: 4.6MB, backup size: 84.2KB
backup reference list: 20240213-231400F
Die Zeitstempel in der Antwort werden entweder verwendet, um die vollständige Sicherung wiederherzustellen oder um von einem bestimmten Zeitpunkt innerhalb des Wiederherstellungszeitraums wiederherzustellen.
Sicherung auf dem Zielserver wiederherstellen
Nachdem Sie die Sicherung oder einen Zeitpunkt ermittelt haben, zu dem Sie wiederherstellen möchten, führen Sie pgBackRest
-Befehle auf dem Zielserver aus. Weitere Informationen zu diesen Befehlen finden Sie unter Befehl „Wiederherstellen“.
Im Folgenden finden Sie einige Beispiele für pgBackRest
-Wiederherstellungsbefehle:
Aus einer Sicherung wiederherstellen
pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 restore --set=20240213-231400F --type=immediate --target-action=promote --delta --link-all --log-level-console=info
Von einem bestimmten Zeitpunkt wiederherstellen
pgbackrest --config-path=/mnt/disks/pgsql --stanza=db --repo=1 restore --target="2024-01-22 11:27:22" --type=time --target-action=promote --delta --link-all --log-level-console=info
Daten auf den Zielserver kopieren
Nachdem der Befehl zum Wiederherstellen erfolgreich abgeschlossen wurde, können Sie die Daten aus dem temporären Verzeichnis /mnt/disks/pgsql/data-restored
in das aktuelle Verzeichnis /alloydb-data/data
kopieren.
- Beenden Sie auf dem Zielserver den Datenbankdienst:
Docker
docker stop CONTAINER_NAME
Podman
podman stop CONTAINER_NAME
Benennen Sie das aktuelle Datenverzeichnis sicherheitshalber in einen anderen Namen um:
mv ~/alloydb-data/data ~/alloydb-data/data-old
Benennen Sie das temporäre Verzeichnis
data-restored
in das aktuelle Datenverzeichnis um:mv ~/alloydb-data/data-restored ~/alloydb-data/data
Aktualisieren Sie den Wert
pg1-path
in der Dateipostgresql.auto.conf
, um die wiederhergestellten Daten zu laden:
vim ~/alloydb-data/data/postgresql.auto.conf
# Verify postgresql.auto.conf.
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
# Recovery settings generated by pgBackRest restore on 2024-03-13 20:47:11
restore_command = 'pgbackrest --config-path=/mnt/disks/pgsql --pg1-path=/mnt/disks/pgsql/data --repo=1 --stanza=db archive-get %f "%p"'
recovery_target = 'immediate'
recovery_target_action = 'promote'
recovery_target_timeline = 'current'
Starten Sie auf dem Zielserver den Datenbankdienst:
Docker
docker start CONTAINER_NAME
Podman
podman start CONTAINER_NAME
Nachdem der Datenbankdienst gestartet wurde, können Sie eine Verbindung zur primären Instanz herstellen und Abfragen ausführen, um zu prüfen, ob die Daten aus der Sicherung wiederhergestellt wurden. Weitere Informationen finden Sie unter Verbindung zu AlloyDB Omni auf einem einzelnen Server herstellen.