Ripristinare un cluster AlloyDB Omni utilizzando pgBackRest

Select a documentation version:

Questa pagina mostra come ripristinare un cluster AlloyDB Omni utilizzando un backup creato con pgBackRest, la soluzione di backup open source inclusa nel container Docker di 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 ripristino comuni, con esempi di comandi pertinenti.

Per saperne di più sulla configurazione di pgBackRest per l'utilizzo con AlloyDB Omni, consulta Configurare pgBackRest per AlloyDB Omni.

Prima di iniziare

Prima di configurare AlloyDB Omni per l'utilizzo con pgBackrest, devi aver installato e in esecuzione AlloyDB Omni su un server che controlli.

  • Un server di database di destinazione che esegue la stessa versione principale di AlloyDB Omni del server di database di origine. Per saperne di più sull'installazione di AlloyDB Omni, consulta Installare AlloyDB Omni.

    Il server di destinazione può essere la stessa macchina del server di origine.

  • Un repository di backup di pgBackRest contenente almeno un backup del database AlloyDB Omni di origine.

  • Spazio libero su disco sufficiente sul server di destinazione per contenere il database ripristinato.

Panoramica

Per eseguire un ripristino di AlloyDB Omni utilizzando pgBackRest, esegui il pgbackrest restore comando. Gli argomenti che fornisci al comando variano a seconda della situazione.

In generale, esegui il comando pgbackrest restore con flag che forniscono le seguenti informazioni:

  • La posizione del file pgbackrest.conf.
  • Il nome del repository di backup di pgBackRest da cui vuoi eseguire il ripristino. Questi repository sono denominati e definiti nel file pgbackest.conf.
  • La posizione nel file system locale in cui scrivere i dati ripristinati.
  • Un identificatore del backup o del momento specifico da cui vuoi eseguire il ripristino.

Quando esegui i comandi pgbackrest restore in container, ricordati di utilizzare i percorsi del file system dal punto di vista del container. Ad esempio, il percorso della directory dei dati di AlloyDB Omni è sempre /mnt/disks/pgsql, indipendentemente dalla sua posizione sul server host. Per saperne di più, consulta Una nota sui percorsi del file system.

Eseguire un ripristino point-in-time

Questo esempio ripristina i dati da un repository pgBackRest, assegnando un nome a un momento specifico da cui eseguire il ripristino. Se hai definito più repository nel file pgbackrest.conf dell'ambiente di destinazione, pgBackRest sceglie il repository da cui eseguire il ripristino in base alla disponibilità, alla velocità prevista e ad altri fattori.

L'esempio presuppone quanto segue:

  • Hai un file pgbackrest.conf che si trova al livello superiore della directory dei dati di AlloyDB Omni di destinazione. In questo modo, il file è disponibile per pgbackrest in container come /mnt/disks/pgsql/pgbackrest.conf.

  • Hai abilitato i backup continui con la configurazione di pgBackRest.

  1. Nell'ambiente di destinazione, esegui un ripristino PITR, specificando un timestamp da cui eseguire il ripristino:

    sudo docker exec pg-service pgbackrest \
      --config-path=/mnt/disks/pgsql \
      --stanza=STANZA \
      --type=time \
      --pg1-path=/mnt/disks/pgsql/data-RESTORED \
      --target="TIMESTAMP" \
      restore

    Sostituisci quanto segue:

    • STANZA: la stanza di configurazione, definita dal file pgbackrest.conf, da applicare a questo ripristino, ad esempio omni.

    • TIMESTAMP: l'ora da cui eseguire il ripristino, ad esempio 2024-02-22 19:50:00.

  2. Nell'ambiente di destinazione, arresta il server di database:

    sudo alloydb database-server stop
  3. Rinomina la sottodirectory data della directory dei dati, come misura di sicurezza:

    cd DATA_DIR
    sudo mv data data-OLD

    Sostituisci DATA_DIR con il percorso del file system della directory dei dati di AlloyDB Omni.

  4. Sposta i dati ripristinati e libera spazio postgresql.auto.conf:

    sudo mv data-RESTORED data
    sudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.conf
  5. Avvia il server di database:

    sudo alloydb database-server start

Ora puoi connetterti al database utilizzando psql e verificare che i dati siano stati ripristinati come previsto. In caso affermativo, puoi eliminare la copia data-OLD della data sottodirectory che hai creato in precedenza.

Per saperne di più sul PITR in pgBackRest, consulta Recupero point-in-time. Per saperne di più sulla preparazione di un file pgbackrest.conf per l'utilizzo con AlloyDB Omni, consulta Configurare pgBackRest per AlloyDB Omni.

Altre opzioni

Il comando pgbackrest restore è molto flessibile, con una serie di opzioni e funzionalità che puoi controllare tramite il passaggio di diverse opzioni della riga di comando. Di seguito sono elencati alcuni esempi:

  • Limitare un ripristino solo ai file modificati.
  • Ripristinare solo i database selezionati.

Per una guida completa all'esecuzione dei ripristini in pgBackRest, consulta Ripristino.