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 tramite la console di gestione delle appliance è deprecato. Per scoprire di più su questa deprecazione e sulle soluzioni di backup alternative, consulta Esegui la migrazione dai backup dei database legacy.

PostgreSQL è un potente sistema di database relazionale a oggetti open source 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 PostgreSQL utilizzata da Backup e RE

  • Backup a livello di volume (Linux Change Block Tracking e snapshot LVM): Backup e RE utilizza i comandi PostgreSQL pg_start_backup(label) e pg_stop_backup() durante l'esecuzione dei backup con Linux Change Block Tracking e snapshot LVM.

  • Backup completi e 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 dispone di un'opzione per acquisire le modifiche incrementali di un database, pertanto ogni backup è un backup completo del dump 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 di PostgreSQL (WriteAheadLog). Per eliminare i log, Backup e RE utilizza un comando a livello di sistema operativo.

Come funziona: backup basato sui volumi di Backup e RE con Linux CBT

Nella bitmap vengono monitorati solo i blocchi modificati: nessuna operazione di copia su scrittura, nessuna operazione ad alta intensità di I/O.

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

  1. L'agente di Backup e RE dispone di 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 una bitmap.

  4. Chiamata dell'agente all'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 genera uno snapshot interno e sintetizza un backup completo virtuale point-in-time.

  7. Per il recupero dati, Backup e RE monta istantaneamente un disco di gestione temporanea riscrivibile e porta il database online.

Il comando di blocco o sblocco viene eseguito sul nodo principale per un job di snapshot a livello di volume:

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

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

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

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 ripristino dei dati con i backup basati su file:

  1. Il deployment dell'agente di Backup e RE viene eseguito nel server di database.

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

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

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

  5. Per il recupero dati, Backup e RE monta istantaneamente il disco di gestione temporanea sul server del 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