Ripristinare un cluster AlloyDB Omni utilizzando pgBackRest

Seleziona una versione della documentazione:

Questa pagina mostra come ripristinare un cluster AlloyDB Omni utilizzando un backup creato con pgBackRest, la soluzione di backup open source inclusa nel container 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 Backup e 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 nel file system di destinazione per archiviare il cluster di database AlloyDB Omni ripristinato.

  • La stessa versione principale di AlloyDB Omni utilizzata per il container di ripristino del container di origine originale.

    Per controllare la tua versione di PostgreSQL, esegui questo 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 che hai utilizzato per il container. Ad esempio, my-omni-1.

    Per controllare la versione di pgBackRest, esegui questo 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 che hai utilizzato per il container. Ad esempio, my-omni-1.

    Se il contenitore di destinazione ha una versione diversa di PostgreSQL, pgBackRest o 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 o pg_dumpall incluse in PostgreSQL, per copiare i database tra le versioni.

Arresta il container AlloyDB Omni

Per simulare l'indisponibilità del cluster di database AlloyDB Omni, arresta il 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

Sostituisci la seguente variabile:

  • CONTAINER_NAME: il nome che hai utilizzato per il container. Ad esempio, my-omni-1.

Crea un container 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 che hai utilizzato per il container. Ad esempio, my-omni-1.
  • DATA_DIR: il percorso della directory host in cui sono archiviati i dati.
  • BACKUP_DIR: Il percorso della directory esterna in cui vengono archiviati i backup.
  • HOST_PORT: la porta TCP sulla macchina host a cui il container deve pubblicare la propria porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 5432.

Rimuovere la directory dei dati

Per cancellare il cluster di 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 che hai utilizzato per il container. Ad esempio, my-omni-1.

Verifica 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 che hai utilizzato per il container. Ad esempio, my-omni-1.
  • STANZA_NAME: il nome della sezione 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 che hai utilizzato per il container. Ad esempio, my-omni-1.
  • STANZA_NAME: il nome della sezione che hai creato. Ad esempio, my-stanza.

Rimuovi il container 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 che hai utilizzato per il container. 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 che hai utilizzato per il container. Ad esempio, my-omni-1.
  • DATA_DIR: il percorso della directory host in cui sono archiviati i dati.
  • BACKUP_DIR: Il percorso della directory esterna in cui vengono archiviati i backup.
  • HOST_PORT: la porta TCP sulla macchina host a cui il container deve pubblicare la propria porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 5432.

Verifica che AlloyDB Omni sia stato avviato

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 che hai utilizzato per il container. 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 Ripristino.