I backup sono indispensabili per il funzionamento sicuro di ogni database. Un’interruzione, un aggiornamento errato o un incidente di sicurezza può cancellare i dati in modo irreversibile. In questo tutorial imparerai come proteggere efficacemente i database ed effettuare un backup completo di MariaDB.

Tipi di backup su MariaDB: logico e fisico

MariaDB distingue tra due tipi di backup:

  • I backup logici memorizzano i dati in un formato eseguibile SQL. Contengono istruzioni come CREATE TABLE e INSERT INTO, che consentono di ripristinare la struttura e i contenuti del database. I backup logici sono adatti quando si desidera trasferire dati su altri sistemi, altre versioni o persino su altri sistemi di database.
  • I backup fisici copiano direttamente i file e le directory del database dal filesystem. Questo metodo è più veloce ed efficiente, specialmente con grandi quantità di dati. Tuttavia, funziona in modo affidabile solo se server, formati di archiviazione e versioni di MariaDB rimangono identici.

Per molti scenari si consiglia una combinazione di entrambe le metodologie: ad esempio, dump logici per singoli dati o tabelle e backup fisici per ripristini completi e rapidi.

Managed Database Services
Concentrati sul tuo progetto, noi pensiamo al resto
  • Partner IONOS Cloud
  • Soluzioni flessibili e su misura
  • Data center situati in Europa

Creare un backup su MariaDB: quali opzioni ci sono?

MariaDB offre diversi strumenti per effettuare il backup dei dati. A seconda dell’uso, della quantità di dati e dell’ambiente di sistema, si possono impiegare metodi diversi.

mariadb dump

mariadb dump è lo strumento di backup più conosciuto di MariaDB. Crea backup logici e salva i dati come file SQL. Questo file può essere ripristinato successivamente con il client MariaDB.

Vantaggi:

  • Funziona su qualsiasi sistema con client MariaDB
  • Esegue il backup di tabelle, singole o di tutto il database
  • Compatibile con altre versioni di MariaDB e MySQL

Svantaggi:

  • Grandi quantità di dati allungano il tempo di backup e ripristino
  • Durante il backup possono verificarsi picchi di carico

mariadb backup

mariadb backup esegue il backup dei dati fisicamente. Lo strumento si basa su Percona XtraBackup ed è stato ampliato per MariaDB. Supporta crittografia e compressione.

Vantaggi:

  • Rapido ed efficiente con grandi quantità di dati
  • Esegue backup durante il funzionamento (Hot Backup)
  • Adatto per sistemi produttivi con tabelle InnoDB

Svantaggi:

  • Funziona solo con InnoDB (non con MyISAM)
  • Maggiore impegno nella configurazione e nel ripristino

Altre opzioni

  • mariadb-hotcopy: strumento più vecchio per tabelle MyISAM (non più supportato)
  • LVM-Snapshots: backup a livello di filesystem per l’intero sistema. Molto veloce, ma complesso
  • dbForge Studio: soluzione grafica per sistemi Windows con interfaccia intuitiva

Esempio pratico: effettuare un backup su MariaDB con mariadb dump

Hai bisogno di accesso al server di database e di un account utente con permessi di backup (per esempio root). Apri un terminale o una connessione SSH. Assicurati che il comando mariadb dump sia installato e disponibile nel percorso.

Eseguire il backup di tutti i database

Esegui il seguente comando:

mariadb-dump -u root -p --all-databases --result-file=/backups/backup_all.sql
bash

Spiegazione:

  • -u root: imposta l’utente root.
  • -p: richiede l’inserimento della password.
  • --all-databases: esegue il backup di tutti i database esistenti.
  • --result-file: imposta il file di destinazione per il backup.

Il backup include tutti i database, compresa la gestione degli utenti, i trigger, le viste e le tabelle di sistema.

Eseguire il backup di un database specifico

Il comando seguente --databases shop_db esegue il backup solo del database specificato.

mariadb-dump -u root -p --databases shop_db --result-file=/backups/shop_db.sql
bash

Se desideri evitare l’istruzione CREATE DATABASE nel dump, utilizza:

mariadb-dump -u root -p shop_db --result-file=/backups/shop_db.sql
bash

In questo caso, devi creare tu stesso il database al momento del ripristino.

Eseguire il backup di più database

Di seguito, elenca i database da includere nel backup. Crea un file SQL con istruzioni per tutti i database elencati.

mariadb-dump -u root -p --databases db1 db2 db3 --result-file=/backups/multiple.sql
bash

Eseguire il backup di singole tabelle

Indichiamo il database e le tabelle desiderate direttamente nel comando. Questo è utile per esportazioni mirate, ad esempio durante la migrazione di singole tabelle.

mariadb-dump -u root -p db_name table1 table2 --result-file=tables.sql
bash

Opzioni possibili per mariadb dump

Opzione Descrizione
--no-data Esegue il backup solo della struttura, non dei dati
--no-create-info Esegue il backup solo dei dati, senza la struttura delle tabelle
--routines Esegue il backup di procedure e funzioni
--events Esegue il backup degli eventi pianificati
--single-transaction Backup senza blocchi per le tabelle InnoDB
--quick Riduce il fabbisogno di memoria per tabelle grandi

MariaDB: automatizzare il backup con Cron

Automatizza i backup giornalieri con un cronjob. Apri la tabella Cron:

crontab -e
bash

Inserisci questa riga per creare, ad esempio, un backup giornaliero alle 3 del mattino:

0 3 ** * mariadb-dump -u root -p password --all-databases --result-file=/backups/backup-$(date +\%F).sql
bash

Per motivi di sicurezza, non salvare le password direttamente nella tabella Cron. Invece, crea un file di configurazione .my.cnf nella directory Home:

[client]
user=root
password=password
bash

Imposta i permessi di accesso:

chmod 600 ~/.my.cnf
bash

Quindi, utilizza la seguente variante senza password nei cronjob:

mariadb-dump --all-databases --result-file=/backups/backup-$(date +\%F).sql
bash

Utilizza mariadb dump preferibilmente per backup flessibili, indipendenti dal sistema e per quantità di dati più piccole. Per sistemi produttivi con grandi quantità di dati, si consiglia mariadb backup. Esegui backup regolari e verificali con prove di ripristino. Solo un backup verificato ti protegge affidabilmente dalla perdita di dati.

Compute Engine
La soluzione IaaS ideale per i tuoi carichi di lavoro
  • vCPU estremamente vantaggiose e potenti core dedicati
  • Massima flessibilità senza periodo contrattuale minimo
  • Servizio di assistenza tecnica 24 ore su 24, 7 giorni su 7
Hai trovato questo articolo utile?
Vai al menu principale