I backup sono in­di­spen­sa­bi­li per il fun­zio­na­men­to sicuro di ogni database. Un’in­ter­ru­zio­ne, un ag­gior­na­men­to errato o un incidente di sicurezza può can­cel­la­re i dati in modo ir­re­ver­si­bi­le. In questo tutorial imparerai come pro­teg­ge­re ef­fi­ca­ce­men­te i database ed ef­fet­tua­re un backup completo di MariaDB.

Tipi di backup su MariaDB: logico e fisico

MariaDB distingue tra due tipi di backup:

  • I backup logici me­mo­riz­za­no i dati in un formato ese­gui­bi­le SQL. Con­ten­go­no istru­zio­ni come CREATE TABLE e INSERT INTO, che con­sen­to­no di ri­pri­sti­na­re la struttura e i contenuti del database. I backup logici sono adatti quando si desidera tra­sfe­ri­re dati su altri sistemi, altre versioni o persino su altri sistemi di database.
  • I backup fisici copiano di­ret­ta­men­te i file e le directory del database dal fi­le­sy­stem. Questo metodo è più veloce ed ef­fi­cien­te, spe­cial­men­te con grandi quantità di dati. Tuttavia, funziona in modo af­fi­da­bi­le solo se server, formati di ar­chi­via­zio­ne e versioni di MariaDB rimangono identici.

Per molti scenari si consiglia una com­bi­na­zio­ne di entrambe le me­to­do­lo­gie: ad esempio, dump logici per singoli dati o tabelle e backup fisici per ri­pri­sti­ni completi e rapidi.

Managed Database Services
Con­cen­tra­ti sul tuo progetto, noi pensiamo al resto
  • Partner IONOS Cloud
  • Soluzioni fles­si­bi­li e su misura
  • Data center situati in Europa

Creare un backup su MariaDB: quali opzioni ci sono?

MariaDB offre diversi strumenti per ef­fet­tua­re 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ù co­no­sciu­to di MariaDB. Crea backup logici e salva i dati come file SQL. Questo file può essere ri­pri­sti­na­to suc­ces­si­va­men­te con il client MariaDB.

Vantaggi:

  • Funziona su qualsiasi sistema con client MariaDB
  • Esegue il backup di tabelle, singole o di tutto il database
  • Com­pa­ti­bi­le con altre versioni di MariaDB e MySQL

Svantaggi:

  • Grandi quantità di dati allungano il tempo di backup e ri­pri­sti­no
  • Durante il backup possono ve­ri­fi­car­si picchi di carico

mariadb backup

mariadb backup esegue il backup dei dati fi­si­ca­men­te. Lo strumento si basa su Percona Xtra­Bac­kup ed è stato ampliato per MariaDB. Supporta crit­to­gra­fia e com­pres­sio­ne.

Vantaggi:

  • Rapido ed ef­fi­cien­te con grandi quantità di dati
  • Esegue backup durante il fun­zio­na­men­to (Hot Backup)
  • Adatto per sistemi pro­dut­ti­vi con tabelle InnoDB

Svantaggi:

  • Funziona solo con InnoDB (non con MyISAM)
  • Maggiore impegno nella con­fi­gu­ra­zio­ne e nel ri­pri­sti­no

Altre opzioni

  • mariadb-hotcopy: strumento più vecchio per tabelle MyISAM (non più sup­por­ta­to)
  • LVM-Snapshots: backup a livello di fi­le­sy­stem per l’intero sistema. Molto veloce, ma complesso
  • dbForge Studio: soluzione grafica per sistemi Windows con in­ter­fac­cia intuitiva

Esempio pratico: ef­fet­tua­re 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 con­nes­sio­ne SSH. As­si­cu­ra­ti che il comando mariadb dump sia in­stal­la­to e di­spo­ni­bi­le 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

Spie­ga­zio­ne:

  • -u root: imposta l’utente root.
  • -p: richiede l’in­se­ri­men­to della password.
  • --all-databases: esegue il backup di tutti i database esistenti.
  • --result-file: imposta il file di de­sti­na­zio­ne 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 spe­ci­fi­ca­to.

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

Se desideri evitare l’istru­zio­ne 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 ri­pri­sti­no.

Eseguire il backup di più database

Di seguito, elenca i database da includere nel backup. Crea un file SQL con istru­zio­ni 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

In­di­chia­mo il database e le tabelle de­si­de­ra­te di­ret­ta­men­te nel comando. Questo è utile per espor­ta­zio­ni mirate, ad esempio durante la mi­gra­zio­ne di singole tabelle.

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

Opzioni possibili per mariadb dump

Opzione De­scri­zio­ne
--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 pia­ni­fi­ca­ti
--single-transaction Backup senza blocchi per le tabelle InnoDB
--quick Riduce il fab­bi­so­gno di memoria per tabelle grandi

MariaDB: au­to­ma­tiz­za­re il backup con Cron

Au­to­ma­tiz­za i backup gior­na­lie­ri con un cronjob. Apri la tabella Cron:

crontab -e
bash

Inserisci questa riga per creare, ad esempio, un backup gior­na­lie­ro 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 di­ret­ta­men­te nella tabella Cron. Invece, crea un file di con­fi­gu­ra­zio­ne .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 pre­fe­ri­bil­men­te per backup fles­si­bi­li, in­di­pen­den­ti dal sistema e per quantità di dati più piccole. Per sistemi pro­dut­ti­vi con grandi quantità di dati, si consiglia mariadb backup. Esegui backup regolari e ve­ri­fi­ca­li con prove di ri­pri­sti­no. Solo un backup ve­ri­fi­ca­to ti protegge af­fi­da­bil­men­te dalla perdita di dati.

Vai al menu prin­ci­pa­le