Questa pagina mostra come ripristinare un cluster AlloyDB Omni utilizzando un backup creato con pgBackRest, la soluzione di backup open source inclusa nel contenitore 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 recupero comuni, con esempi di comandi pertinenti.
Per ulteriori informazioni sulla configurazione di pgBackRest per il funzionamento 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 configurare AlloyDB Omni per il funzionamento con pgBackrest, devi aver installato e avviato AlloyDB Omni su un server di tua proprietà.
Un server database di destinazione che esegue la stessa versione principale di AlloyDB Omni del backup che vuoi ripristinare. Per ulteriori informazioni sull'installazione di AlloyDB Omni, consulta Installare AlloyDB Omni.
Un repository di backup 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 comando pgbackrest restore
. I parametri forniti al comando variano a seconda della situazione.
In genere, lo script viene eseguito con i flag che forniscono le seguenti informazioni:pgbackrest restore
- La posizione del file
pgbackrest.conf
. - Il nome del repository di backup di pgBackRest in cui vuoi eseguire il ripristino. Questi repository sono denominati e definiti nel file
pgbackrest.conf
. - La posizione nel file system locale in cui scrivere i dati ripristinati.
- Un identificatore del backup o del punto in tempo 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 contenitore. Ad esempio, il percorso della directory dei dati di AlloyDB Omni è sempre /var/lib/postgresql/data
, indipendentemente dalla posizione sul server host. Per ulteriori informazioni, consulta la sezione
Una nota sui percorsi del file system.
Eseguire un ripristino point-in-time
Questo esempio ripristina i dati da un repository pgBackRest, specificando un determinato punto nel tempo a 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
situato al livello superiore della directory dei dati AlloyDB Omni di destinazione. In questo modo, il file diventa disponibile perpgbackrest
in container come/var/lib/postgresql/data
.Hai attivato i backup continui con la configurazione di pgBackRest.
Nell'ambiente di destinazione, esegui un ripristino PITR specificando un timestamp a cui eseguire il ripristino:
docker exec CONTAINER_NAME pgbackrest \ --config-path=/var/lib/postgresql/data \ --stanza=STANZA \ --type=time \ --pg1-path=/var/lib/postgresql/data/data-RESTORED \ --target="TIMESTAMP" \ restore
Sostituisci quanto segue:
CONTAINER_NAME
: il nome assegnato al contenitore AlloyDB Omni al momento dell'installazione, ad esempiomy-omni
.STANZA
: la stanza di configurazione, definita dal filepgbackrest.conf
, da applicare a questo ripristino, ad esempioomni
.TIMESTAMP
: la data e l'ora a cui eseguire il ripristino, ad esempio2024-02-22 19:50:00
.
Nell'ambiente di destinazione, arresta il contenitore utilizzando il seguente comando:
docker container stop CONTAINER_NAME
Per precauzione, rinomina la sottodirectory
data
della directory dei dati:cd DATA_DIR
sudo mv data data-OLD
Sostituisci
DATA_DIR
con il percorso del file system della directory Omnidata di AlloyDB.Sposta i dati ripristinati e ripulisci
postgresql.auto.conf
:sudo mv data-RESTORED data
sudo sed -i 's|data-RESTORED|data|' data/postgresql.auto.conf
Avvia il contenitore AlloyDB Omni con il server di database:
docker container start CONTAINER_NAME
Ora puoi connetterti al database utilizzando psql
e verificare che i dati siano stati ripristinati come previsto. In questo caso, puoi eliminare la copia data-OLD
della sottodirectory data
che hai creato in precedenza.
Per ulteriori informazioni sul PITR in pgBackRest, consulta Recupero point-in-time.
Per ulteriori informazioni 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 e offre una serie di opzioni e funzionalità che puoi controllare passando diverse opzioni della riga di comando. Di seguito sono elencati alcuni esempi:
- Limitare un ripristino solo ai file modificati.
- Ripristino solo di alcuni database.
Per una guida completa all'esecuzione dei ripristini in pgBackRest, consulta Ripristino.