Im folgenden Workflow werden die Schritte zum Klonen beschrieben:
- Konfigurieren Sie die Datei
pgbackrest.conf
für den Zugriff auf die Cloud Storage-Sicherung. - Verwenden Sie
pgBackRest
-Befehle, um zu prüfen, ob auf 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 Ihres 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.
- Achten Sie darauf, dass Sie als Nutzer
postgres
in der Datenbank angemeldet sind.
pgBackRest
-Datei auf dem Zielserver konfigurieren
Konfigurieren Sie die Datei pgBackRest
, damit der Zieldatenbankcluster auf den Cloud Storage-Bucket zugreifen kann, in dem sich die Quellsicherungen befinden.
Wechseln Sie auf dem Zielserver zum Verzeichnis
alloydb-data
.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-Buckets
pgBackRest
, den Sie im Quelldatenbankcluster erstellt haben. Dies ist nicht die vollständige URL zum Bucket. Stellen Sie dem Bucket-Namen nicht das Präfixgs://
voran. - GCS_SOURCE_BACKUP_BUCKET_PATH: Der Pfad des Verzeichnisses, in das der AlloyDB Omni-Operator Sicherungen schreibt, innerhalb des Cloud Storage-Bucket für den Quelldatenbankcluster. 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 Key Type Option.- GCS_SOURCE_BACKUP_BUCKET_NAME: Der Name des Cloud Storage-Buckets
Quellsicherungen auf dem Zielserver überprüfen
Melden Sie sich auf dem Zielserver an und führen Sie pgBackRest
-Befehle aus, um zu prüfen, ob die Sicherungen des Quelldatenbankclusters auf dem Zielserver verfügbar sind:
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 oder die Wiederherstellung zu einem bestimmten Zeitpunkt im Wiederherstellungszeitraum durchzuführen.
Sicherung auf dem Zielserver wiederherstellen
Nachdem Sie die Sicherung oder den Zeitpunkt ermittelt haben, zu dem Sie die Wiederherstellung durchführen möchten, führen Sie pgBackRest
-Befehle auf dem Zielserver aus. Weitere Informationen zu diesen Befehlen finden Sie unter Restore-Befehl.
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 Wiederherstellungsbefehl 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 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.