Backup e RE per PostgreSQL su un'appliance di backup/recupero

Attenzione: a partire dal 31 luglio 2027, il supporto per il backup dei database PostgreSQL utilizzando la console di gestione dell'appliance verrà ritirato. Per saperne di più su questo ritiro e sulle soluzioni di backup alternative, consulta Eseguire la migrazione dai backup di database legacy.

PostgreSQL è un sistema di database relazionali a oggetti open source e potente che utilizza ed estende il linguaggio SQL combinato con molte funzionalità che archiviano e scalano in modo sicuro i workload di dati più complessi.

API di backup di PostgreSQL utilizzata da Backup e RE

  • Backup a livello di volume (monitoraggio dei blocchi modificati di Linux e snapshot LVM): Backup e RE utilizza i comandi pg_start_backup(label) e pg_stop_backup() di PostgreSQL quando esegue i backup con il monitoraggio dei blocchi modificati di Linux e lo snapshot LVM.

  • Backup completi + incrementali (tradizionali basati su file): Backup e RE utilizza i comandi di backup basati su file pg_dump di PostgreSQL. Il comando pg_dump non ha un'opzione per acquisire le modifiche incrementali di un database, quindi ogni backup è un backup di dump completo del database.

    Il ripristino del database recupera il database sovrascrivendo fisicamente l'area dati.

  • Backup dei log di PostgreSQL: durante un backup dei log, Backup e RE copia fisicamente tutti i WAL (WriteAheadLog) di PostgreSQL. Per eliminare i log, Backup e RE utilizza un comando a livello di sistema operativo.

Come funziona: backup basato su volume di Backup e RE con CBT Linux

Nel bitmap vengono monitorati solo i blocchi modificati: nessuna operazione di copia in scrittura, nessuna operazione con uso intensivo di I/O.

I passaggi seguenti descrivono la procedura per il backup e il recupero dei dati:

  1. L'agente di Backup e RE ha CBT per monitorare i blocchi modificati nell'area dati del database.

  2. L'agente chiama l'API del database per bloccare o mettere in pausa il database per il backup dei dati.

  3. L'agente crea uno snapshot LVM dell'area dati del database e sintetizza un bitmap.

  4. L'agente chiama l'API del database per sbloccare il database.

  5. L'agente copia i blocchi modificati nell'appliance di backup/ripristino, che poi elimina lo snapshot e cataloga il backup.

  6. L'appliance emette uno snapshot interno e sintetizza un backup completo virtuale point-in-time.

  7. Per il recupero dei dati, Backup e RE monta immediatamente un disco di gestione temporanea riscrivibile e mette online il database.

Il comando di quiescenza o non quiescenza viene eseguito sul nodo primario per un job di snapshot a livello di volume:

select pg_start_backup(<label>);
select pg_stop_backup();

I comandi di quiescenza e non quiescenza vengono eseguiti su un nodo di standby per un job di snapshot a livello di volume:

Se la versione di PostgreSQL è 10.x o successive:

select pg_wal_replay_pause();
select pg_wal_replay_resume();

Se la versione di PostgreSQL è 9.x:

select pg_xlog_replay_pause();
select pg_xlog_replay_resume();

Come funziona: backup basato su file

I passaggi seguenti descrivono la procedura per eseguire il backup e il recupero dei dati con i backup basati su file:

  1. L'agente di Backup e RE viene eseguito il deployment nel server di database.

  2. Monta il disco di gestione temporanea sul server di database.

  3. Richiama il backup completo utilizzando il comando di backup di dump, scrivendo il backup sul disco montato.

  4. Backup e RE esegue uno snapshot interno. I backup dei log vengono eseguiti in modo simile direttamente dal file system in base a qualsiasi pianificazione configurata.

  5. Per il recupero dei dati, Backup e RE monta immediatamente il disco di gestione temporanea sul server di database e avvia l'operazione di ripristino del database. I log possono essere riprodotti in qualsiasi momento dopo il ripristino del database.

Passaggi successivi

Prepara il database per Backup e DR

Altra documentazione per Backup e RE per PostgreSQL