18 Settembre 2024

Backup MySQL, Percona e MariaDB. Il formato xbstream e mbstream

Scopri come utilizzare i formati xbstream e mbstream per superare i limiti di spazio disco durante il backup di MySQL, Percona Server o MariaDB.

Nel mondo della gestione dei database, la protezione dei dati è cruciale per garantire la continuità operativa e la sicurezza delle informazioni. Con l’uso sempre più diffuso di MySQL e MariaDB, avere una strategia di backup efficiente e affidabile è una necessità per evitare perdite di dati dovute a guasti hardware, errori umani o attacchi informatici. In questo contesto, strumenti come Percona XtraBackup e Mariabackup sono ampiamente utilizzati per eseguire backup fisici di MySQL e MariaDB. In particolare, i formati di backup xbstream e mbstream stanno guadagnando sempre più attenzione per la loro efficienza nella gestione di backup e ripristini. Questo articolo esplora in dettaglio il backup dei database MySQL e MariaDB, focalizzandosi sull’uso di xbstream e mbstream, e sul ruolo di strumenti come Mariabackup, che deriva da un fork di Percona XtraBackup.

L’importanza del backup in MySQL e MariaDB

MySQL e MariaDB sono tra i database relazionali più utilizzati al mondo. Tuttavia, come per qualsiasi sistema, è essenziale avere un piano di backup ben strutturato per proteggere i dati da eventi imprevisti. I backup regolari di MySQL e MariaDB servono a mitigare i rischi associati a:

  • Errori umani: Modifiche accidentali o errate ai dati possono compromettere l’integrità del database. Con un backup, è possibile ripristinare rapidamente lo stato precedente del database.
  • Guasti hardware: I dischi rigidi o altri componenti hardware possono guastarsi, portando alla perdita di dati. Avere un backup aggiornato consente di minimizzare i tempi di inattività.
  • Attacchi informatici: I database possono essere vulnerabili a violazioni della sicurezza o attacchi ransomware. Un backup permette di recuperare i dati senza pagare riscatti o subire gravi perdite.
  • Aggiornamenti del sistema: Gli aggiornamenti software o hardware possono introdurre bug o problemi di compatibilità. I backup consentono di ripristinare il database a uno stato funzionante in caso di problemi.

Strumenti per il backup di MySQL e MariaDB

Esistono diversi strumenti per eseguire il backup dei database MySQL e MariaDB, ciascuno con caratteristiche uniche in termini di capacità, modalità di esecuzione e scopo. Ogni strumento ha i propri punti di forza e debolezza a seconda del contesto, delle dimensioni del database e delle esigenze di ripristino. Tra gli strumenti più comuni ci sono:

mysqldump

mysqldump è uno strumento nativo e ampiamente utilizzato per eseguire il backup logico di database MySQL e MariaDB. Funziona esportando i dati in un formato leggibile, come file di script SQL o CSV, che possono essere successivamente utilizzati per ripristinare il database. Durante l’esportazione, mysqldump crea comandi SQL che ricreano le strutture delle tabelle, inseriscono i dati e applicano eventuali chiavi primarie, indici e vincoli.

Vantaggi di mysqldump:

  • Portabilità: I backup prodotti da mysqldump sono facilmente trasferibili su altri server o piattaforme, poiché il formato SQL è leggibile universalmente da qualsiasi istanza di MySQL o MariaDB.
  • Flessibilità: È possibile eseguire il backup di singole tabelle, database specifici o un intero server di database, personalizzando l’output in base alle proprie esigenze.
  • Facilità d’uso: Essendo uno strumento nativo, è preinstallato in ogni distribuzione di MySQL e MariaDB, non richiede software aggiuntivo e ha una curva di apprendimento bassa.

Svantaggi di mysqldump:

  • Lento per grandi database: Il principale difetto di mysqldump è la sua inefficienza con grandi database. Poiché esporta i dati in un formato testuale, il tempo richiesto per l’esportazione e il ripristino aumenta significativamente con l’aumento delle dimensioni del database.
  • Assenza di backup incrementali: mysqldump non supporta backup incrementali, il che significa che ogni backup è completo e contiene tutte le informazioni. Questo aumenta il tempo e lo spazio di archiviazione necessari rispetto a soluzioni fisiche che offrono backup incrementali.
  • Blocchi: In alcuni scenari, soprattutto quando non viene utilizzato in modalità non bloccante (--single-transaction per database InnoDB), può causare lock sul database, interrompendo temporaneamente l’accesso ai dati durante l’esecuzione del backup.

Percona XtraBackup

Percona XtraBackup di cui abbiamo parlato molto in questo post Backup MySQL lento e server down quando passa Google, è uno degli strumenti di backup fisici più popolari per MySQL e MariaDB. È sviluppato da Percona, una società specializzata in soluzioni open-source per MySQL, MariaDB e MongoDB. Questo strumento è particolarmente apprezzato in ambienti di produzione poiché esegue backup fisici senza bloccare il database, permettendo che il database resti attivo e funzionante durante il processo di backup.

Vantaggi di Percona XtraBackup:

  • Backup senza blocchi: Uno dei principali vantaggi è che esegue backup senza richiedere il blocco del database. Ciò significa che le operazioni di lettura e scrittura possono continuare normalmente durante l’esecuzione del backup.
  • Backup fisici: Poiché XtraBackup copia direttamente i file dei dati (come i file .ibd per le tabelle InnoDB), il processo di backup è molto più veloce rispetto a mysqldump, specialmente per database di grandi dimensioni.
  • Backup incrementali: XtraBackup supporta backup incrementali e differenziali, riducendo il tempo necessario per eseguire il backup e lo spazio su disco. Con i backup incrementali, vengono copiati solo i dati modificati dopo l’ultimo backup completo, migliorando notevolmente l’efficienza.
  • Ripristino rapido: Poiché il ripristino di un backup fisico comporta solo la copia dei file di dati, è possibile ripristinare un database di grandi dimensioni in tempi molto più rapidi rispetto a un backup logico.
  • Compressione e cifratura: XtraBackup supporta anche la compressione dei backup per ridurre l’uso dello spazio di archiviazione e la cifratura per proteggere i dati sensibili.

Svantaggi di Percona XtraBackup:

  • Maggiore complessità: Essendo uno strumento avanzato, XtraBackup richiede una comprensione più approfondita delle configurazioni e delle operazioni sui database, in particolare per quanto riguarda la gestione dei log e l’applicazione delle modifiche durante il ripristino.
  • Non supporta nativamente tutte le configurazioni di MariaDB: Sebbene XtraBackup supporti molte delle funzionalità di MariaDB, è stato progettato principalmente per MySQL e Percona Server, quindi alcune funzionalità specifiche di MariaDB potrebbero non essere completamente compatibili.

Mariabackup

Mariabackup è un fork di Percona XtraBackup, sviluppato appositamente per gestire i backup fisici di MariaDB. La creazione di Mariabackup è stata resa necessaria dalla progressiva divergenza tra MySQL e MariaDB, due database che, pur condividendo origini comuni, hanno introdotto differenti funzionalità nel tempo. A causa di questa divergenza, Percona XtraBackup, che era inizialmente compatibile con entrambi i database, ha perso progressivamente il supporto per le versioni più recenti di MariaDB. Mariabackup è quindi nato per colmare questo gap e fornire uno strumento di backup specifico per le installazioni di MariaDB.

Vantaggi di Mariabackup:

  • Ottimizzato per MariaDB: Mariabackup è stato progettato appositamente per gestire i cambiamenti nel motore di archiviazione InnoDB di MariaDB e per supportare altre funzionalità specifiche del sistema, come le tabelle Aria e le nuove caratteristiche di MariaDB che non sono presenti in MySQL.
  • Backup senza blocchi: Come XtraBackup, anche Mariabackup esegue backup fisici senza bloccare il database, il che significa che può essere utilizzato in ambienti di produzione senza interrompere il servizio.
  • Compatibilità con i motori di MariaDB: Oltre a InnoDB, Mariabackup supporta anche il backup di tabelle Aria e altre caratteristiche uniche di MariaDB, rendendolo lo strumento ideale per chi ha scelto questo database.
  • Backup incrementali: Mariabackup eredita la capacità di eseguire backup incrementali da XtraBackup, il che significa che è possibile eseguire backup efficienti e rapidi copiando solo i dati modificati.

Svantaggi di Mariabackup:

  • Minor supporto della comunità: Sebbene Mariabackup sia sviluppato dal team di MariaDB, non ha ancora la stessa popolarità e comunità di supporto di strumenti come Percona XtraBackup o mysqldump.
  • Focus solo su MariaDB: A differenza di XtraBackup, che può essere utilizzato per MySQL, MariaDB e Percona Server, Mariabackup è specifico per MariaDB e non può essere utilizzato per eseguire backup di altre versioni di MySQL.

Mariabackup è l’equivalente per MariaDB di Percona XtraBackup per MySQL e, grazie al suo sviluppo continuo, è in grado di stare al passo con le nuove funzionalità introdotte nelle versioni più recenti di MariaDB.

Backup logici vs Backup fisici

Quando si tratta di backup di database, possiamo distinguere due principali approcci: backup logici e backup fisici, ciascuno con i propri vantaggi e svantaggi a seconda delle necessità dell’infrastruttura e delle dimensioni del database.

Backup logici

I backup logici vengono creati esportando i dati del database in un formato leggibile, come SQL o CSV. Questo tipo di backup non si limita a salvare semplicemente i dati, ma cattura anche la struttura delle tabelle, inclusi indici, vincoli, e, in alcuni casi, le chiavi esterne. Essendo in formato testuale, risultano facili da leggere, modificare e interpretare. Sono particolarmente utili quando si desidera migrare i dati verso un’altra piattaforma o una diversa versione del database.

Vantaggi:

  • Portabilità: Poiché i backup logici sono salvati in formato SQL, possono essere facilmente trasferiti e ripristinati su altri server o persino su database che utilizzano versioni differenti del software. Questo rende i backup logici particolarmente adatti a scenari di migrazione.
  • Flessibilità: Consentono l’estrazione e il ripristino di singole tabelle o specifiche porzioni di dati, facilitando operazioni di aggiornamento selettivo del database o ripristini parziali, utili per operazioni di recupero dati a livello granulare.

Svantaggi:

  • Inefficienza per grandi database: Quando il database cresce in dimensioni, i backup logici diventano meno pratici. Creare un backup richiede tempo, poiché tutti i dati devono essere convertiti in comandi SQL, e il file risultante può essere molto grande, occupando più spazio di archiviazione rispetto a un backup fisico.
  • Tempi di ripristino prolungati: Ripristinare un database da un backup logico richiede tempo, poiché ogni singolo comando SQL deve essere eseguito nuovamente per ricreare tabelle, dati e indici. Questo può rendere i ripristini particolarmente lenti per i database di grandi dimensioni, compromettendo i tempi di ripristino in caso di disastri.

Backup fisici

I backup fisici vengono creati copiando direttamente i file binari che il database utilizza per memorizzare i dati e le strutture (ad esempio, i file .ibd di InnoDB o file di log di redo). Questo metodo è più efficiente rispetto ai backup logici, in quanto non richiede la conversione dei dati in formato testuale. I file del database vengono copiati esattamente come sono sul disco, garantendo un backup rapido e compatto, particolarmente utile per database di grandi dimensioni o con un volume elevato di dati.

Vantaggi:

  • Velocità: Poiché i dati non vengono convertiti in un formato intermedio come il testo, la copia dei file binari è molto più rapida rispetto a quella dei backup logici. Questo è un grande vantaggio soprattutto per database con grandi volumi di dati o in ambienti dove il downtime deve essere ridotto al minimo.
  • Efficienza di spazio: I backup fisici richiedono meno spazio di archiviazione, poiché copiano solo i file essenziali e possono essere compressi durante il processo di backup. Questo permette una gestione dello spazio più ottimizzata, riducendo il carico su storage limitato.
  • Ripristino rapido: Il processo di ripristino da un backup fisico è molto più veloce. Si tratta principalmente di copiare i file binari sul server e applicare i log di ripristino per garantire la coerenza del database, evitando il rielaboramento di tutti i dati come nei backup logici.

Svantaggi:

  • Meno portabilità: I backup fisici sono strettamente legati alla versione specifica del database e alle configurazioni del sistema operativo. Non possono essere facilmente migrati tra diverse versioni del database (ad esempio, tra MySQL e MariaDB o versioni diverse di uno stesso DBMS) senza la dovuta compatibilità tra i sistemi.
  • Maggiore complessità: La gestione dei backup fisici, soprattutto quando si implementano strategie avanzate come backup incrementali o differenziali, richiede competenze tecniche approfondite. Gli amministratori devono essere in grado di gestire correttamente i file di log e garantire che i backup siano coerenti, il che aggiunge complessità alla configurazione e al mantenimento del sistema di backup.

Strumenti come Percona XtraBackup e Mariabackup utilizzano backup fisici per garantire velocità ed efficienza, senza richiedere il blocco del database durante il processo di backup, rendendoli ideali per ambienti di produzione con grandi quantità di dati e necessità di minimizzare i tempi di inattività.

Percona XtraBackup e il formato xbstream

Percona XtraBackup è uno strumento open-source progettato per eseguire backup fisici consistenti di database MySQL, MariaDB e Percona Server. Funziona copiando i file binari del database e applicando i log per mantenere la consistenza dei dati. Uno dei principali vantaggi di XtraBackup è la possibilità di eseguire backup senza bloccare le operazioni del database, un aspetto fondamentale negli ambienti di produzione.

In scenari reali, come quello nella foto di seguito in cui lo spazio disponibile su disco è limitato, come nel caso di un server Web con un server MariaDB che gestisce un database di 83 gigabyte, ma ha solo 14 gigabyte di spazio libero sul disco, l’uso di un backup locale non sarebbe praticabile. Normalmente, non si potrebbe generare una copia locale del database, comprimerla e trasferirla su una SAN esterna, a causa dell’insufficienza di spazio. Tuttavia, utilizzando il formato xbstream o mbstream, è possibile superare questo limite trasferendo direttamente il backup fisico tramite SSH verso una SAN esterna, senza la necessità di generare prima una copia locale.

spazio-partizione-mysql-backup

Il formato xbstream consente infatti di suddividere i file di backup in blocchi compressi più piccoli e di trasferirli in tempo reale, sfruttando lo streaming dei dati. Questo permette di eseguire il backup e trasferirlo su un altro sistema, riducendo il carico sul disco locale e risolvendo il problema dello spazio limitato, evitando di dover generare un file di grandi dimensioni in locale.

Un esempio di comando per creare un backup con Percona XtraBackup e il formato xbstream è:

xtrabackup --backup --stream=xbstream --target-dir=/path/to/backup > backup.xbstream

Questo comando esegue il backup dei dati e li scrive nel formato xbstream, che può essere compresso per ridurre lo spazio necessario.

Per ripristinare il backup dal formato xbstream:

xbstream -x < backup.xbstream

Questo estrarrà i file binari, che possono poi essere utilizzati per il ripristino del database.

Mariabackup: Un fork di Percona XtraBackup per MariaDB

Mariabackup è una versione derivata di Percona XtraBackup, sviluppata e mantenuta dal team di MariaDB per offrire supporto specifico a MariaDB. Mariabackup nasce come fork di XtraBackup per colmare la crescente divergenza tra MySQL e MariaDB, poiché Percona XtraBackup è stato progettato principalmente per MySQL e Percona Server, mentre Mariabackup è ottimizzato per funzionare con MariaDB.

MariaDB e MySQL hanno seguito percorsi di sviluppo separati dopo la scissione del progetto originale, con MariaDB che ha introdotto funzionalità e miglioramenti non presenti in MySQL. A causa di queste differenze, Percona XtraBackup non era più completamente compatibile con le versioni più recenti di MariaDB. Di conseguenza, il team di MariaDB ha creato Mariabackup come strumento dedicato per gestire i backup fisici di MariaDB.

Mariabackup funziona in modo simile a Percona XtraBackup e utilizza anche il formato xbstream per eseguire backup fisici consistenti senza interrompere il funzionamento del database. Ciò significa che, come Percona XtraBackup, Mariabackup può eseguire backup incrementali, differenziali e compressi, rendendolo una soluzione ideale per le esigenze di backup di MariaDB in ambienti di produzione.

Un esempio di comando per eseguire un backup con Mariabackup:

 
mariabackup --backup --stream=xbstream --target-dir=/path/to/backup > backup.xbstream

Mariabackup offre una soluzione ottimizzata per MariaDB, con il supporto per le funzionalità specifiche di MariaDB, come il formato dei dati InnoDB e le tabelle Aria.

Il formato mbstream

Il formato mbstream è un formato di streaming simile a xbstream, ma leggermente più generico. Viene utilizzato per gestire i backup fisici, consentendo il backup e il ripristino paralleli, migliorando le prestazioni in ambienti di grandi dimensioni. Una delle principali differenze tra xbstream e mbstream è la capacità di quest’ultimo di sfruttare più thread per eseguire il backup, il che lo rende ideale per i server con database di grandi dimensioni e infrastrutture multithreaded.

Il formato mbstream supporta la compressione nativa e la suddivisione dei file di backup in blocchi più piccoli, proprio come xbstream, offrendo un’alternativa flessibile per chi desidera ottimizzare il processo di backup.

Per eseguire un backup utilizzando il formato mbstream con XtraBackup o Mariabackup, si utilizza il seguente comando:

xtrabackup --backup --stream=mbstream --target-dir=/path/to/backup > backup.mbstream

Il processo di ripristino segue una logica simile:

mbstream -x < backup.mbstream

Confronto tra xbstream e mbstream

Entrambi i formati xbstream e mbstream hanno i loro vantaggi in termini di gestione dei backup di MySQL e MariaDB, ma presentano alcune differenze che devono essere considerate quando si sceglie quale formato utilizzare.

Vantaggi di xbstream:

  • Compatibilità ottimale con XtraBackup e Mariabackup: xbstream è strettamente integrato con questi strumenti, offrendo prestazioni ottimali quando si eseguono backup fisici di MySQL e MariaDB.
  • Compressione nativa: xbstream include il supporto per la compressione, riducendo lo spazio di archiviazione necessario per i backup.
  • Facilità d’uso: Per chi utilizza XtraBackup o Mariabackup, xbstream è il formato predefinito e quindi la scelta più semplice e immediata.

Vantaggi di mbstream:

  • Backup paralleli: mbstream supporta il backup e il ripristino paralleli, migliorando le prestazioni su macchine multi-thread e server con database di grandi dimensioni.
  • Maggiore flessibilità: mbstream può essere utilizzato con una gamma più ampia di strumenti e non è strettamente legato a XtraBackup o Mariabackup.

Conclusioni

Garantire un backup regolare e affidabile dei database MySQL e MariaDB è essenziale per la continuità operativa di qualsiasi infrastruttura IT. Strumenti come Percona XtraBackup e Mariabackup offrono soluzioni robuste per la gestione dei backup fisici, mentre i formati xbstream e mbstream forniscono metodi efficienti per la compressione e la gestione dei dati di backup. La scelta tra xbstream e mbstream dipende principalmente dalle esigenze specifiche del sistema, come le dimensioni del database, le prestazioni del server e i requisiti di ripristino. Tuttavia, per chi lavora con MariaDB, l’uso di Mariabackup rappresenta una scelta naturale, data la sua ottimizzazione specifica per questo sistema di database.

Avere una strategia di backup solida è vitale per proteggere i dati da disastri imprevisti, e l’uso di strumenti e formati moderni come xbstream e mbstream garantisce che i backup siano eseguiti in modo efficiente, riducendo la dimensione, i tempi di inattività e minimizzando la perdita di dati.

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Hetzner Online GmbH detiene i diritti su Hetzner®; OVHcloud è un marchio registrato di OVH Groupe SAS; cPanel®, L.L.C. detiene i diritti su cPanel®; Plesk® è un marchio registrato di Plesk International GmbH; Facebook, Inc. detiene i diritti su Facebook®. Questo sito non è affiliato, sponsorizzato o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello europeo da MANAGED SERVER SRL, Via Enzo Ferrari, 9, 62012 Civitanova Marche (MC), Italia.

Torna in alto