Per ulteriori informazioni su pgBackRest, consulta la guida dell'utente.
Prima di iniziare
Prima di configurare AlloyDB Omni in modo che funzioni con pgBackRest, completa i seguenti prerequisiti:
- Installa ed esegui AlloyDB Omni su un server che controlli.
Configurazione di base con backup locali
I passaggi descritti in questa sezione ti guidano nella configurazione di base di pgBackRest. Le configurazioni di base non abilitano i backup in base a una pianificazione. Per ulteriori informazioni, vedi Configura backup pianificati.
Poiché pgBackRest è un prodotto di terze parti flessibile compatibile con AlloyDB Omni, puoi modificare questi passaggi in base alle tue esigenze e preferenze.
Crea una directory di backup
Per motivi di organizzazione, ti consigliamo vivamente di creare una directory separata per i backup di pgBackRest. Per configurare una nuova directory, completa i seguenti passaggi:
Se AlloyDB Omni è in esecuzione, arrestalo.
sudo systemctl stop alloydbomni18
Crea una directory di backup.
sudo mkdir -p BACKUP_DIR
Sostituisci
BACKUP_DIRcon la directory host in cui verranno archiviati i backup.Rendi la directory dei backup leggibile da
postgres.sudo chown -R postgres:postgres BACKUP_DIR
Configura i backup locali
pgBackRest crea sottodirectory per ogni backup eseguito e include un file manifest in testo normale.
pgBackRest utilizza il termine stanza per fare riferimento alla configurazione di un cluster di database PostgreSQL. Il nome della stanza è arbitrario e non deve corrispondere al server host, al cluster PostgreSQL o al nome del database. La documentazione di pgBackRest suggerisce di denominare la stanza in base alla funzione del cluster.
Il repository è la posizione in cui vengono scritti i backup. pgBackRest supporta la scrittura in più repository in una determinata stanza. La maggior parte dei parametri di configurazione relativi ai repository sono indicizzati con un valore numerico. Ad esempio, repo1-. Anche i parametri relativi ai cluster PostgreSQL sono indicizzati in modo indipendente. Ad esempio, pg1-.
pgBackRest utilizza un file di configurazione, denominato pgbackrest.conf, per contenere i parametri globali e specifici della stanza.
Per creare e inizializzare un file di configurazione per il backup del cluster
AlloyDB Omni, crea il pgbackrest.conf file nella directory dei backup
lato host creata in
Crea una directory di backup.
[global]
# Paths (all mandatory):
repo1-path=BACKUP_DIR
spool-path=BACKUP_DIR/spool
lock-path=BACKUP_DIR
# Retention details:
repo1-retention-full=3
repo1-retention-full-type=count
repo1-retention-diff=16
# Force a checkpoint to start backup immediately:
start-fast=y
# Logging parameters:
log-path=BACKUP_DIR
log-level-console=info
log-level-file=info
# Recommended ZSTD compression:
compress-type=zst
# Other performance parameters:
archive-async=y
archive-push-queue-max=1024MB
archive-get-queue-max=256MB
archive-missing-retry=y
[global:archive-push]
process-max=2
[global:archive-get]
process-max=2
[omni]
pg1-user=postgres
pg1-socket-path=/tmp
pg1-path=DATA_DIR
Alcuni parametri sono obbligatori, ma altri possono essere modificati per soddisfare requisiti specifici, se necessario, ad esempio:
repo1-path: percorso della directory in cui vengono scritti i backup. Ti consigliamo una località visibile sia al server host sia al container.log-path: percorso della directory in cui vengono scritti i file di log. Se vuoi scrivere i file di log in una località separata, non insieme ai backup stessi, modifica questo parametro.repo1-retention-full: numero di backup completi da conservare.repo1-retention-full-type: indica se la conservazione viene misurata in base al conteggio o al periodo di tempo (giorni).repo1-retention-diff: numero di backup differenziali da conservare.
Altre impostazioni dei parametri non critiche, ma consigliate, compatibili con AlloyDB Omni nel file di configurazione includono:
log-level-console: livello di logging scritto sullo schermo (stdout) durante l'esecuzione dei comandi pgBackup. Puoi modificare questo valore in base alle tue esigenze nel file di configurazione o eseguirne l'override con l'argomento della riga di comando--log-level-console. Il valore predefinito èwarn.start-fast: forza un checkpoint per avviare rapidamente i backup. Il valore predefinito èn.archive-async: esegui il push dei file di segmento WAL in modo asincrono per migliorare le prestazioni. Il valore predefinito èn.process-max: numero massimo di processi da utilizzare per la compressione e il trasferimento. In genere, questo valore è impostato sumax_cpu/4in un cluster primario omax_cpu/2in un cluster di standby. Il valore predefinito è1.compress-type: algoritmo di compressione da utilizzare. Il valore predefinito ègz.
Esistono molti altri parametri di configurazione di pgBackRest che possono essere modificati. Questa documentazione tratta solo i parametri obbligatori per la configurazione predefinita di AlloyDB Omni e alcune impostazioni dei parametri consigliate. Per l'elenco completo dei parametri di configurazione, consulta la documentazione online di riferimento alla configurazione di pgBackRest.
Dopo aver configurato pgBackRest, i repository di destinazione in cui vengono scritti i backup devono essere inizializzati creando la stanza, che utilizza i parametri impostati nel file di configurazione.
Per configurare il database per i backup, completa i seguenti passaggi:
Crea la stanza utilizzando il comando
stanza-create.sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni stanza-create
Sostituisci
BACKUP_DIRcon la directory di backup creata in Crea una directory di backup.Configura il database per i backup.
/usr/lib/postgresql/18/bin/psql -h localhost -U postgres \ -c "ALTER SYSTEM SET archive_command='pgbackrest --config-path=/var/lib/BACKUP_DIR --stanza=omni archive-push %p';" \ -c "ALTER SYSTEM SET archive_mode=on;" \ -c "ALTER SYSTEM SET max_wal_senders=10;" \ -c "ALTER SYSTEM SET wal_level=replica;"
Riavvia AlloyDB Omni.
sudo systemctl restart alloydbomni18
Convalida la configurazione di backup.
/usr/lib/postgresql/18/bin/psql -h localhost -U postgres \ -c "SELECT name, setting FROM pg_catalog.pg_settings WHERE name IN ('archive_command', 'archive_mode', 'max_wal_senders', 'wal_level') ORDER BY name"Esegui un controllo di pgBackRest.
sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni \ check
Esegui un backup
Esegui un backup completo.
sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni \ --type=full backup
Sostituisci
BACKUP_DIRcon la directory di backup creata in Crea una directory di backup.Esegui un backup differenziale.
sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni \ --type=diff backup
Genera un report dei backup.
sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni \ info
Configura backup pianificati
Per configurare i backup pianificati, crea un cron job che esegua il comando pgbackrest backup con la frequenza necessaria. Per ulteriori informazioni, vedi
Pianifica un backup.
Configurazione personalizzata e backup remoti
Dopo aver configurato una configurazione di base, puoi ottimizzare il file di configurazione in base alle tue esigenze e preferenze utilizzando le opzioni documentate nel riferimento alla configurazione di pgBackRest.
Ciò include la specifica di repository di backup aggiuntivi che si trovano su macchine remote o nel cloud. Se definisci più repository, pgBackRest li scrive contemporaneamente come azione di backup predefinita.
Ad esempio, pgBackRest supporta l'utilizzo di un bucket Cloud Storage come repository di backup, con una serie di opzioni di configurazione correlate. La sezione seguente mostra un modo per utilizzare queste opzioni.
Un esempio di configurazione che utilizza Cloud Storage
I passaggi descritti in questa sezione si basano sul file di configurazione introdotto in Configurazione di base con backup locali. Queste modifiche al file definiscono un secondo repository di backup in un bucket Cloud Storage, a cui si accede tramite Identity and Access Management (IAM).
Lo stile di autenticazione automatica in questo esempio richiede l'esecuzione di un cluster AlloyDB Omni su un'istanza VM di Compute Engine. Se non esegui AlloyDB Omni su un'istanza VM di Compute Engine, puoi comunque eseguire il backup in un bucket Cloud Storage utilizzando un altro metodo di autenticazione, ad esempio una chiave dell' Google Cloud account di servizio salvata nel file system locale.
Per estendere il file di configurazione precedente in modo da definire un repository pgBackRest basato su Cloud Storage, segui questi passaggi:
Configura le autorizzazioni del bucket per consentire al account di servizio collegato all'istanza VM di scrivere nel bucket. Per farlo, devi impostare il ruolo IAM Utente oggetti Storage per il account di servizio.
Aggiungi queste righe alla sezione
[global]del filepgbackrest.conf:# Cloud Storage access details: repo2-type=gcs repo2-gcs-key-type=auto repo2-storage-verify-tls=n # Cloud Storage bucket and path details: repo2-gcs-bucket=BUCKET_NAME repo2-path=PATH_IN_BUCKET # Cloud Storage backup retention parameters: repo2-retention-full=8 repo2-retention-full-type=countSostituisci la seguente variabile:
BUCKET_NAME: nome del bucket Cloud Storage in cui vuoi che pgBackRest memorizzi i backup.PATH_IN_BUCKET: percorso della directory nel bucket Cloud Storage in cui vuoi che pgBackRest memorizzi i backup.
Inizializza la località di backup basata sul cloud utilizzando il
pgbackrest stanza-createcomando:sudo -u postgres pgbackrest \ --config-path=/var/lib/BACKUP_DIR \ --stanza=omni stanza-create
Sostituisci
BACKUP_DIRcon la directory di backup creata in Crea una directory di backup.
Dopo aver inizializzato il repository di backup nel bucket Cloud Storage utilizzando il comando pgbackrest stanza-create, pgBackRest può eseguire il backup in due località:
Località nel file system locale, definita altrove nel file di configurazione come
repo1-path. Questa è la località predefinita quando--reponon è specificato nel comandopgbackrest.Bucket Cloud Storage, definito utilizzando le direttive di configurazione
repo2-gcs-bucketconfigurate in questo esempio. Per utilizzare il bucket Cloud Storage, specifica--repo=2nel comandopgbackrest.