Servizio di backup e DR per PostgreSQL su un'appliance di backup/recupero

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

API di backup PostgreSQL utilizzata da Backup e RE

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

  • Backup completo+incrementale (tradizionale basato 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 completo del dump del database.

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

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

Funzionamento: backup basato sul volume di Backup e RE con CBT Linux

Nel bitmap vengono monitorati solo i blocchi modificati: non vengono eseguite operazioni di copia in scrittura né operazioni con uso intensivo di I/O.

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

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

  2. L'agente chiama l'API del database per bloccare o sospendere 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 crea uno snapshot interno e sintetizza un backup completo virtuale in un determinato momento.

  7. Per il recupero dei dati, Backup e RE monta immediatamente un disco di staging riscrivibile e porta il database online.

Il comando di sospensione o ripristino viene eseguito sul primario per un job di snapshot a livello di volume:

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

I comandi quiesce e unquiesce 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 ripristino dei dati con i backup basati su file:

  1. L'agente Backup e RE viene implementato nel server di database.

  2. Monta il disco di staging sul server di database.

  3. Richiama il backup completo utilizzando il comando di backup dump, 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 a qualsiasi pianificazione che configuri.

  5. Per il recupero dei dati, Backup e RE monta immediatamente il disco di staging sul server di database e avvia l'operazione di ripristino del database. I log possono essere riprodotti fino a qualsiasi punto temporale dopo il ripristino del database.

Passaggi successivi

Prepara il database per Backup e DR

Altra documentazione per Backup e RE per PostgreSQL