Questa pagina mostra come ripristinare un cluster AlloyDB Omni utilizzando un backup creato con pgBackRest, la soluzione di backup open source inclusa nel contenitore AlloyDB Omni.
Poiché AlloyDB Omni è compatibile con PostgreSQL, i comandi e le tecniche di ripristino dei dati descritti nel manuale di pgBackRest si applicano anche ad AlloyDB Omni. Questa pagina mostra una selezione di attività di recupero comuni, con esempi di comandi pertinenti.
Per ulteriori informazioni sulla configurazione di pgBackRest per l'utilizzo con AlloyDB Omni, consulta Configurare pgBackRest per AlloyDB Omni.
Per informazioni basate su Kubernetes, consulta Eseguire il backup e il ripristino in Kubernetes.
Prima di iniziare
Prima di ripristinare un cluster AlloyDB Omni, assicurati di avere quanto segue:
Configura pgBackRest per la tua istanza AlloyDB Omni.
Spazio su disco sufficiente sul file system di destinazione per archiviare il cluster del database AlloyDB Omni ripristinato.
La stessa versione principale di AlloyDB Omni utilizzata per il container di ripristino del contenitore di origine originale.
Per controllare la versione di PostgreSQL, esegui il seguente comando:
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();"
Sostituisci la seguente variabile:
CONTAINER_NAME
: il nome utilizzato per il contenitore. Ad esempio,my-omni-1
.
Per controllare la versione di pgBackRest, esegui il seguente comando:
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
Sostituisci la seguente variabile:
CONTAINER_NAME
: il nome utilizzato per il contenitore. Ad esempio,my-omni-1
.
Se il contenitore di destinazione ha una versione diversa di PostgreSQL, pgBackRest o di entrambi, devi creare un nuovo contenitore di destinazione con una versione corrispondente. Se non è possibile, devi utilizzare un metodo alternativo, ad esempio le utilità
pg_dump
opg_dumpall
incluse in PostgreSQL, per copiare i database tra le versioni. Per ulteriori informazioni, consulta Esportare un file DMP.
Interrompi il contenitore AlloyDB Omni
Per simulare la mancata disponibilità del cluster del database AlloyDB Omni, arresta il contenitore.
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
Sostituisci la seguente variabile:
CONTAINER_NAME
: il nome utilizzato per il contenitore. Ad esempio,my-omni-1
.
Crea un contenitore AlloyDB Omni inattivo
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
Sostituisci le seguenti variabili:
CONTAINER_NAME
: il nome utilizzato per il contenitore. Ad esempio,my-omni-1
.DATA_DIR
: percorso della directory host in cui sono memorizzati i dati.BACKUP_DIR
: percorso della directory esterna in cui sono memorizzati i backup.HOST_PORT
: porta TCP sulla macchina host su cui il container deve pubblicare la propria porta5432
. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432
.
Rimuovere la directory dei dati
Per cancellare il cluster del database AlloyDB Omni, rimuovi la directory dei dati.
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/*"
Sostituisci la seguente variabile:
CONTAINER_NAME
: il nome utilizzato per il contenitore. Ad esempio,my-omni-1
.
Verificare che i backup siano visibili
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
Sostituisci le seguenti variabili:
CONTAINER_NAME
: il nome utilizzato per il contenitore. Ad esempio,my-omni-1
.STANZA_NAME
: il nome della stanza che hai creato. Ad esempio,my-stanza
.
Ripristinare il backup
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
Sostituisci le seguenti variabili:
CONTAINER_NAME
: il nome utilizzato per il contenitore. Ad esempio,my-omni-1
.STANZA_NAME
: il nome della stanza che hai creato. Ad esempio,my-stanza
.
Rimuovi il contenitore AlloyDB Omni inattivo
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
Sostituisci la seguente variabile:
CONTAINER_NAME
: il nome utilizzato per il contenitore. Ad esempio,my-omni-1
.
Crea il contenitore AlloyDB Omni
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
Sostituisci le seguenti variabili:
CONTAINER_NAME
: il nome utilizzato per il contenitore. Ad esempio,my-omni-1
.DATA_DIR
: percorso della directory host in cui sono memorizzati i dati.BACKUP_DIR
: percorso della directory esterna in cui sono memorizzati i backup.HOST_PORT
: porta TCP sulla macchina host su cui il container deve pubblicare la propria porta5432
. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432
.
Verificare l'avvio di AlloyDB Omni
Docker
docker logs -f CONTAINER_NAME
Docker
docker logs -f CONTAINER_NAME
Podman
podman logs -f CONTAINER_NAME
Podman
podman logs -f CONTAINER_NAME
Sostituisci la seguente variabile:
CONTAINER_NAME
: il nome utilizzato per il contenitore. Ad esempio,my-omni-1
.
Altre opzioni
Il comando pgBackRest restore
è molto flessibile, con una serie di opzioni e funzionalità che puoi controllare passando diverse opzioni della riga di comando.
Per una guida completa all'esecuzione dei ripristini, consulta
Ripristina.