L'esecuzione di backup regolari è una procedura essenziale per qualsiasi tipo di dati. Questo tutorial ti aiuterà a conoscere alcuni degli strumenti più utilizzati per il backup e il ripristino del tuo database MySQL.
Per prima cosa dovrai connetterti al tuo server tramite una connessione SSH. Se non l'hai già fatto, ti consigliamo di seguire la nostra guida per connetterti in sicurezza con SSH. In caso di server locale puoi andare al punto successivo e aprire il terminale del tuo server.
Usa mysqldump
Mysqldump è un'applicazione sempre disponibile in ogni installazione di MySQL e ti permette di eseguire un dump completo dei tuoi dati in formato testo.
La sintassi del comando è la seguente:
$ mysqldump -u [username] -p [database] > backup.sql
Eseguendo questo comando, troverai un backup completo del database indicato nel file backup.sql.
Per ripristinare il backup utilizzare il client MySQL come segue:
$ mysql -u [username] -p [database] < backup.sql
A seconda delle dimensioni del database, questi file di backup possono raggiungere dimensioni significative, rendendone difficile il trasferimento o la copia. Per ottimizzare la dimensione del backup del database, puoi utilizzare gzip per comprimere il file:
$ mysqldump -u [username] -p [database] | gzip > backup.sql.gz
Se lo desideri, puoi anche aggiungere automaticamente la data corrente nel nome del file utilizzando:
$ mysqldump -u [username] -p [database] | gzip > backup_$(date +%F.%H%M%S).sql.gz
Per ripristinare, usa invece la seguente sintassi:
$ mysql -u [username] -p [database] < backup.sql
Note su mysqldump:
È bene tenere presente che durante il dump e il backup di un database, mysqldump non garantisce la coerenza dei dati tra le tabelle. Se si verificano operazioni di scrittura durante il backup, il backup ottenuto potrebbe essere parziale e/o danneggiato.
Per prevenire questo problema, ci sono opzioni specifiche fornite dall'applicazione:
--lock-all-tables:blocca tutte le operazioni di scrittura su tutte le tabelle di tutti i database
- lock-tables:questa opzione imposta invece il backup della tabella del database in modalità di sola lettura.
Le opzioni da scegliere dipendono dalla presenza o meno di dati relativi a più database. Nella maggior parte dei casi --lock-tables è la soluzione ideale per garantire l'integrità dei dati per ogni singolo database.
Automatizzare mysqldump tramite crontab
Per rendere periodico il backup, non devi far altro che aggiungerlo al crontab del sistema programmando, ad esempio, una volta al giorno. Innanzitutto, apri crontab avviando:
$ sudo crontab -e
Ora aggiungi una riga alla fine del file come segue:
00 23 * * * mysqldump -u [username] -p [database] | gzip > /home/utente/backup.sql.gz
Salvando il file, il sistema eseguirà un backup al giorno (alle 23:00) all'interno della directory utente, sovrascrivendo il backup precedente ogni giorno.
Usa automysqlbackup
Oltre a utilizzare mysqldump esportando manualmente i backup, puoi fare affidamento su una delle utility più popolari del settore:automysqlbackup.
Per prima cosa devi installare il pacchetto tramite apt-get:
$ sudo apt-get install automysqlbackup
Dopo aver completato l'installazione, automysqlbackup eseguirà backup giornalieri nella directory /var / lib / automysqlbackup. Puoi anche avviare manualmente un backup avviando:
$ sudo automysqlbackup
Una volta completati, puoi verificare i backup presenti semplicemente elencando il contenuto della directory:
$ ls -R /var/lib/automysqlbackup/
/var/lib/automysqlbackup/:
daily monthly weekly
/var/lib/automysqlbackup/daily:
exampledb information_schema performance_schema test wordpress
/var/lib/automysqlbackup/daily/exampledb:
exampledb_2019-08-03_06h48m.Sunday.sql.gz
...
Se tutto ha funzionato correttamente, noterai una serie di file con estensione .sql.gz come mostrato sopra.
Ti consigliamo di controllare periodicamente gli ultimi backup effettuati e verificarne il corretto funzionamento.
Personalizzazione di automysqlbackup
Per modificare la frequenza di backup di automysqlbackup oi dati di accesso necessari per accedere al tuo database puoi modificare il file di configurazione in /etc/default/automysqlbackup.
Alcune delle impostazioni sono:
USERNAME:username utilizzato per accedere al db
PASSWORD:password database
DBHOST:indirizzo IP o nome host
DBNAMES:nomi dei database di cui eseguire il backup
BACKUPDIR:Directory per salvare i backup
Dopo aver modificato le impostazioni desiderate, salva il file per applicare le modifiche.