Come eseguire backup e restore di un database MySQL con mysqldump

Cerca

In questo articolo scopriamo come eseguire il backup e il ripristino di un database MySQL o MariaDB grazie all’utility a riga di comando mysqldump.

Il file di backup ottenuto usando l’utility mysqldump è praticamente un insieme di SQL statements che possono essere usati per ricreare un database identico all’originale, quindi ripristinandone la struttura. Come nota a margine è inoltre utile sapere che mysqldump può anche generare file CSV o XML utili per esportare i dati contenuti nel database.

Sintassi di mysqldump

Iniziamo la scoperta di mysqldump analizzando la sua sintassi di base. Un espressione mysqldump segue la seguente sintassi:

				
					mysqldump [options] > file.sql
				
			

options – Sono le opzioni che mysqldump ci mette a disposizione
file.sql – Il nome del file di dump (backup)

Ricordiamo che mysqldump necessita che il server MySQL sia “up and running” affinchè possa funzionare.

Backup di un singolo database

Il caso d’uso più comune dell’utility mysqldump è il backup di un singolo database. Per esempio, per creare un backup di un database denominato database_name usando l’utente root e salvarlo in un file denominato database_name.sql, il comando da eseguire è il seguente:
				
					mysqldump -u root -p database_name > database_name.sql
				
			

Backup di una serie di database

Per eseguire il backup di molteplici database con un unico comando dobbiamo usare l’opzione --database seguita dalla lista dei database oggetto del backup. Ogni database deve essere separato da spazio.
				
					mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql
				
			

Backup di tutti i database

In questo caso è sufficiente utilizzare l’opzione –all-databases e tutti i database ospitati sul server MySQL saranno oggetto di backup. Il comando è il seguente:

				
					mysqldump -u root -p --all-databases > all_databases.sql
				
			

Backup di tutti i database su file separati

Purtroppo l’utility mysqldump non fornisce un’opzione per eseguire il backup di tutti i database archiviando ogni database su un file dedicato. Tuttavia questo può facilmente essere raggiunto con un semplice script bash:

				
					for DB in $(mysql -e 'show databases' -s --skip-column-names); do
    mysqldump $DB > "$DB.sql";
done
				
			

Il comando qui sopra creerà un file di dump per ogni singolo database usando come filename il nome del database stesso.

Creare un backup compresso

Se la dimensione del database oggetto di backup è molto grande è una buona idea comprimere l’output. Per realizzare questo è sufficiente eseguire una pipe dell’output verso l’utility gzip e infine ridirezionare il tutto verso un file. Il comando è il seguente:

				
					mysqldump database_name | gzip > database_name.sql.gz
				
			

Eseguire il restore di un MySQL dump

Per eseguire il restore di un file di dump di MySQL possiamo utilizzare direttamente la command line utility mysql. Prima di eseguire il restore è necessario creare il database.

				
					mysql -u root -p -e "CREATE DATABASE database_name";
mysql -u root -p database_name < database_name.sql
				
			

Eseguire il restore di un singolo database da un Full MySQL Dump

Per ripristinare un singolo database da un file di dump che contiene il backup di molteplici database (per esempio un file ottenuto con l’opzione –all-databases) possiamo utilizzare il seguente comando:

				
					mysql --one-database database_name < all_databases.sql
				
			

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Most Recent

Come cambiare il server DNS su Ubuntu

Cambiare il server DNS usato da Ubuntu è un’operazione piuttosto semplice, ma che comunque deve essere condotta con attenzione. Vediamo quindi in questo articolo come

Partners