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 in AlloyDB Omni.

Poiché AlloyDB Omni è compatibile con PostgreSQL, i comandi e le tecniche di ripristino dei dati descritti da il manuale di pgBackRest si applicano anche ad AlloyDB Omni. Questa pagina mostra una selezione di attività di ripristino comuni, con esempi di comandi pertinenti.

I cluster abilitati per TDE supportano anche il backup e il ripristino utilizzando pgBackRest. Per saperne di più, consulta Creare un cluster abilitato per TDE.

Per saperne di più 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:

  • 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 l'istanza del database di ripristino dell'istanza del database 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: nome utilizzato per il container. 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: nome utilizzato per il container. Ad esempio, my-omni-1.

    Se il container di destinazione ha una versione diversa di PostgreSQL, pgBackRest o entrambi, devi creare un nuovo container 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.

  • Arrestare 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: nome utilizzato per il container. Ad esempio, my-omni-1.

    Creare 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: nome utilizzato per il container. Ad esempio, my-omni-1.
    • DATA_DIR: percorso della directory host in cui sono archiviati i dati.
    • BACKUP_DIR: percorso della directory esterna in cui sono archiviati i backup.
    • HOST_PORT: 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: nome utilizzato per il container. 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: nome utilizzato per il container. Ad esempio, my-omni-1.
    • STANZA_NAME: nome della stanza creata. 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: nome utilizzato per il container. Ad esempio, my-omni-1. * STANZA_NAME: nome della stanza creata. Ad esempio, my-stanza.

    Rimuovere 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: nome utilizzato per il container. Ad esempio, my-omni-1.

    Creare un container 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: nome utilizzato per il container. Ad esempio, my-omni-1.
    • DATA_DIR: percorso della directory host in cui sono archiviati i dati.
    • BACKUP_DIR: percorso della directory esterna in cui sono archiviati i backup.
    • HOST_PORT: 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.

      Verificare 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: nome utilizzato per il container. Ad esempio, my-omni-1.

      Altre opzioni

      Il comando restore di pgBackRest è 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 Ripristinare.