2ndQuadrant » Recovery https://blog.2ndquadrant.it Il blog sui database di 2ndQuadrant Italia Thu, 25 Jan 2018 11:36:59 +0000 en-US hourly 1 http://wordpress.org/?v=4.3.15 Le novità di Barman 1.4.0 https://blog.2ndquadrant.it/le-novita-di-barman-1-4-0/ https://blog.2ndquadrant.it/le-novita-di-barman-1-4-0/#comments Wed, 28 Jan 2015 14:30:40 +0000 http://blog.2ndquadrant.it/?p=1888 La versione 1.4.0 di Barman aggiunge nuove funzionalità come il backup incrementale e l’integrazione automatica con pg_stat_archiver, mirate a semplificare la vita di DBA e amministratori di sistema.

Barman 1.4.0: le modifiche più importanti

L’ultima release aggiunge una nuova modalità di backup: il backup incrementale, che permette il riuso dei file non modificati fra un backup periodico e l’altro, riducendo drasticamente i tempi di esecuzione, la banda utilizzata e lo spazio occupato su disco.tazzine
Altra nuova funzionalità introdotta con la 1.4.0 è l’integrazione di Barman con la vista pg_stat_archiver, disponibile dalla versione 9.4 di PostgreSQL. Questa vista permette di raccogliere informazioni sulle performance del processo di archiviazione dei WAL e di monitorarne lo stato.
La gestione dei WAL file è migliorata. Il calcolo delle statistiche di archiviazione è stato snellito e ottimizzato. È stata potenziata la logica relativa alla rimozione dei WAL obsoleti, andando a effettuare azioni diverse nel caso di backup esclusivi o concorrenti.
I messaggi prodotti in caso di errore sono stati migliorati, rendendoli, dove possibile, più chiari e leggibili.
Abbiamo inoltre investito nella robustezza del codice: con Barman 1.4.0 disponiamo di circa 200 test di unità che vengono eseguiti ad ogni patch.

Backup Incrementale

Approfondiamo adesso la principale novità di questa release: il backup incrementale.

Definizione e teoria alla base

Per comprendere la logica su cui si basa il backup incrementale, prendiamo in considerazione due backup completi e consecutivi. Nell’intervallo di tempo che intercorre fra il completamento del primo backup e il completamento del backup successivo, non tutti i file contenuti all’interno della directory PGDATA vengono modificati. Alcuni file del backup più vecchio e del più recente, sono identici e perciò risultano ridondanti, richiedendo tempo e banda per essere trasferiti via rete e occupando spazio sul disco una volta terminata la copia. Se compariamo i file che compongono il backup più vecchio con i file che stiamo per andare a copiare dal server remoto, è possibile distinguere l’insieme di file che ha subito modifiche da quello che invece è rimasto invariato.
Con il backup incrementale diventa quindi possibile eliminarne la ridondanza, andando a copiare solamente i file modificati.

Implementazione e vantaggi tangibili

Abbiamo sviluppato questa funzionalità ponendoci tre obiettivi:

  • riduzione del tempo di esecuzione di un backup;
  • riduzione dell’utilizzo di banda;
  • riduzione dello spazio occupato eliminando le ridondanze (deduplicazione).

Per ottenerli abbiamo sfruttato la capacità di Rsync di comparare una lista di file ricevuta da un server remoto, con il contenuto di una directory locale, identificando quali siano stati modificati o meno. Abbiamo aggiunto quindi una nuova opzione di configurazione per server/globale chiamata reuse_backup. Questa opzione identifica il tipo di backup che verrà effettuato.
Vediamo i tre possibili valori di reuse_backup e i loro effetti:

  • off: valore di default, backup classico;
  • copy: identifica sul server remoto l’insieme di file modificati, utilizzando l’ultimo backup eseguito come base. Solamente i file che risultano modificati vengono trasferiti via rete, diminuendo i tempi di esecuzione di un backup e risparmiando banda. Al termine del trasferimento dal backup usato come base, vengono copiati i file non modificati, ottenendo così un backup completo;
  • link: identifica i file modificati e ne esegue la copia, esattamente come l’opzione copy. Al termine del trasferimento, il riuso dei file identificati come non modificati non viene ottenuto copiandoli, ma utilizzando degli hard link. In questo modo viene ottimizzato lo spazio sul disco occupato dal backup ed effettivamente si eliminano le ridondanze (deduplicazione).

È inoltre possibile utilizzare la seguente opzione --reuse-backup [{copy, link, off}] da linea di comando per modificare il comportamento di default per un singolo backup.
Per esempio:

$> barman backup --reuse-backup link main

forzerà il riuso del backup utilizzando gli hard link indipendentemente dal valore impostato all’interno del file di configurazione.
Utilizzerò adesso come “caso di studio” Navionics, uno dei nostri clienti e sponsor di questa release che, come vedremo, trae grossi vantaggi dall’utilizzo del backup incrementale. Navionics possiede database di notevoli dimensioni (uno dei più grandi arriva a circa 13 Terabyte). Prima dell’introduzione del backup incrementale, tenendo conto delle caratteristiche del server e della rete:

  • sarebbero state necessarie circa 52 ore per completare un backup;
  • sarebbero stati effettivamente copiati 13 TiB di dati tramite la rete;
  • sarebbero stati occupati effettivamente 13 TiB sul disco.

Con Barman 1.4.0, utilizzando reuse_backup=link e facendo barman show-backup di un backup appena terminato, Navionics ottiene:

Base backup information:
  Disk usage           : 13.2 TiB (13.2 TiB with WALs)
  Incremental size     : 5.0 TiB (-62.01%)

Il tempo di esecuzione del backup è sceso drasticamente da 52 ore a 17 ore circa. I vantaggi sono quindi evidenti:

  • il tempo di esecuzione diminuisce del 68% circa;
  • sono stati copiati via rete solo 5.0 TiB di dati al posto di 13 TiB (-62%);
  • lo spazio occupato sul disco è 5.0 TiB al posto di 13 TiB (-62%).

pg_stat_archiver: integrazione in Barman 1.4.0

Fra le novità introdotte da PostgreSQL 9.4 abbiamo la vista pg_stat_archiver che fornisce dati utili riguardanti lo stato di funzionamento del processo di archiviazione dei WAL. Grazie a queste statistiche è possibile inoltre fare previsioni sullo spazio che un nuovo backup andrà a occupare. Gli utenti di Barman 1.4.0 e PostgreSQL 9.4 potranno notare la comparsa di alcuni nuovi campi all’interno dell’output dei seguenti comandi:

  • barman check:
    • il campo booleano is_archiving che indica lo stato del processo di archiviazione.
  • barman status:
    • last_archived_time riporta l’ora di archiviazione dell’ultimo WAL file;
    • failed_count il numero di tentativi di archiviazione di WAL falliti;
    • server_archived_wals_per_hour il tasso di archiviazione di WAL/ora;
  • barman show-server aggiunge all’insieme delle statistiche del server tutti i campi che compongono la vista pg_stat_archiver.

Conclusioni

Il backup incrementale, funzionalità principale di questa release, è sicuramente uno strumento di grande utilità per tutti, permettendo di salvare tempo e spazio anche su database di dimensioni modeste. Diventa invece quasi indispensabile per tutti coloro che devono amministrare database di grosse dimensioni (VLDB) o che contengono un grosso numero di tabelle in sola lettura, fornendo un notevole incremento di prestazioni in termini di spazio occupato, tempo e banda.
Aggiungendo l’integrazione con pg_stat_archiver su PostgreSQL 9.4 migliora la capacità di monitorare lo stato dei server e quindi la salute e la robustezza di tutte quelle infrastrutture che scelgono Barman come soluzione di disaster recovery di database PostgreSQL.

]]>
https://blog.2ndquadrant.it/le-novita-di-barman-1-4-0/feed/ 0
Rilasciato Barman 1.3.3 https://blog.2ndquadrant.it/rilasciato-barman-1-3-3/ https://blog.2ndquadrant.it/rilasciato-barman-1-3-3/#comments Thu, 21 Aug 2014 07:00:55 +0000 http://blog.2ndquadrant.it/?p=1679 2ndQuadrant è orgogliosa di annunciare il rilascio della versione 1.3.3 di Barman, “Backup And Recovery Manager” per server PostgreSQL.

Barman 1.3.3 è in grado di inviare alert nel caso in cui l’ultimo backup disponibile di un server sia più vecchio di un dato intervallo di tempo (ad esempio, una settimana). Inoltre, Barman può adesso riprovare automaticamente la copia dei backup in seguito a problemi temporanei come la perdita della connessione di rete. È stato poi implementato un algoritmo ottimizzato per la copia tramite rsync, al fine di migliorare le prestazioni durante le operazioni di recovery incrementale.

Le consuete attività di bug fixing e di rifattorizzazione del codice hanno fatto sì che la release 1.3.3 di Barman risulti essere la versione più stabile fra quelle disponibili e per questo vi consigliamo di effettuare l’aggiornamento delle vostre installazioni di Barman il prima possibile.

L’ultima nota di rilievo – ma non certo per importanza – è riservata agli utilizzatori che appartengono all’era giurassica di PostgreSQL 8.3 (senza offesa! ;) ): possono finalmente effettuare il backup dei loro database con Barman.

Un ringraziamento speciale per il contributo allo sviluppo di questa release va a Agile Business Group (www.agilebg.com), Jobrapido (www.jobrapido.com), Navionics (www.navionics.com) e Subito.it (www.subito.it).

Per una lista completa delle modifiche, si faccia riferimento alle note di rilascio nel comunicato ufficiale in lingua inglese. Maggiori informazioni su Barman sono disponibili sul relativo sito all’indirizzo www.pgbarman.org.

A proposito di Barman

Barman (Backup and Recovery Manager per PostgreSQL) è un software open-source scritto in Python, progettato, implementato e mantenuto da 2ndQuadrant Italia e distribuito secondo licenza GNU GPL 3. Consente di eseguire backup remoti su più server in ambienti business critical. Strumento di sicuro supporto ai DBA durante la fase di recupero dei dati. Tra le caratteristiche più apprezzate di Barman emergono: catalogo di backup, politiche di conservazione (retention policy), backup e recovery da remoto, archiviazione e compressione dei file WAL e dei backup.

]]>
https://blog.2ndquadrant.it/rilasciato-barman-1-3-3/feed/ 0
Rilasciato Barman 1.3.1 https://blog.2ndquadrant.it/rilasciato-barman-1-3-1/ https://blog.2ndquadrant.it/rilasciato-barman-1-3-1/#comments Mon, 14 Apr 2014 10:45:11 +0000 http://blog.2ndquadrant.it/?p=1649 2ndQuadrant è orgogliosa di annunciare il rilascio della versione 1.3.1 di Barman, “Backup And Recovery Manager” per server PostgreSQL.


Barman adesso è in grado di supportare il backup concorrente di server PostgreSQL 9.2 e 9.3 servers, utilizzando l’estensione pgespresso e permettendo agli utenti di eseguire backup da un server in standby.

Per una lista completa delle modifiche, si faccia riferimento alle note di rilascio nel comunicato ufficiale in lingua inglese.

Maggiori informazioni su Barman sono disponibili sul relativo sito all’indirizzo www.pgbarman.org.

Barman è un software open-source scritto in Python, progettato, implementato e mantenuto da 2ndQuadrant Italia e distribuito secondo licenza GNU GPL 3.

]]>
https://blog.2ndquadrant.it/rilasciato-barman-1-3-1/feed/ 0
Rilasciato Barman 1.0, soluzione di backup e recovery per database PostgreSQL https://blog.2ndquadrant.it/rilasciato-barman-backup-recovery-manager-postgresql/ https://blog.2ndquadrant.it/rilasciato-barman-backup-recovery-manager-postgresql/#comments Mon, 09 Jul 2012 13:05:27 +0000 http://blog.2ndquadrant.it/?p=1189 Logo di Barman2ndQuadrant è orgogliosa di annunciare il rilascio di Barman 1.0. Barman (acronimo di “Backup And Recovery Manager) è uno strumento open source per l’amministrazione della disaster recovery di server PostgreSQL.

Consente di eseguire backup remoti di più server Postgres in ambienti business critical e aiuta gli amministratori di database durante la fase di recovery.

Alcune fra le più richieste funzionalità di Barman comprendono cataloghi di backup, politiche di conservazione, recovery remota, archiviazione e compressione dei file WAL e backup.

Barman è scritto in Python per sistemi Linux ed è stato completamente progettato e sviluppato dal team italiano di 2ndQuadrant.

Basato sulla robusta ed affidabile  tecnologia Point-In-Time-Recovery, Barman permette agli amministratori di database di gestire le fasi di backup e di recovery di una collezione di server PostgreSQL da una postazione centralizzata, attraverso una interfaccia di comandi estremamente intuitiva.

Stiamo sviluppando sempre più progetti con tecnologie Open Source e una delle sfide maggiori è individuare soluzioni di altà qualità per i nostri servizi” – afferma Marco Betti di CSI Piemonte – “Abbiamo riscontrato in Barman un’ottima soluzione per backup fisico e disaster recovery di database PostgreSQL. Barman è robusto e semplice da usare. La sua interfaccia di comandi consente una facile integrazione con gli strumenti di gestione dei nostri ambienti“.

Laura Passigni di Navionics, azienda leader nel campo della cartografia marina, aggiunge che “Barman è una soluzione semplice ed allo stesso tempo efficace, il compagno perfetto per la migrazione dei nostri database da Oracle a PostgreSQL“.

La versione 1.0 di Barman, distribuita con licenza libera GNU GPL 3, comprende:

  • Backup completo e a caldo di un server PostgreSQL
  • Point-in-Time Recovery (PITR)
  • Gestione centralizzata di server PostgreSQL diversi
  • Backup remoto di un server PostgreSQL
  • Ripristino locale e remoto di un server PostgreSQL a partire da un backup
  • Gestione di base backup e archivio dei file WAL tramite catalogo
  • Supporto ssh per operazioni remote
  • Supporto rsync su ssh per sincronizzazione e trasferimenti di file
  • Compressione dei file WAL (bzip2, gzip o personalizzato)
  • Informazioni generali sui backup, compreso utilizzo dello spazio sul disco
  • Integrazione con strumenti standard per l’archiviazione (e.g. tar)
  • Rilocazione della directory PGDATA e/o di tablespace in fase di ripristino
  • Diagnostica del server per alerting
  • Informazioni e stato del server
  • Memorizzazione locale di metadati su server e backup
  • File di configurazione di tipo INI
  • Pacchetto RPM per RHEL/CentOS 5 e 6

Maggiori informazioni sono disponibili sul sito di Barman all’indirizzo www.pgbarman.org.

Sono disponibili per il download:

Lo sviluppo di Barman da parte di 2ndQuadrant Italia è stato reso possibile attraverso il contributo degli sponsor fondatori CSI Piemonte, GestionaleAuto, Navionics e XCon. Barman è stato in parte finanziato tramite 4Caast, un progetto di ricerca del Settimo Programma Quadro della Commissione Europea.

]]>
https://blog.2ndquadrant.it/rilasciato-barman-backup-recovery-manager-postgresql/feed/ 0