Uno strumento che ogni web developer dovrebbe avere "nel cassetto" è sicuramente PhpMyAdmin il quale, oltre a tantissime funzioni di gestione, permette anche il backup dei vari database. Alternativamente è possibile utilizzare, attraverso terminale, il comando apposito che MySql mette a dispozione, mysqldump.

Backup database

Invece di utilizzare direttamente la linea di comando è più comodo creare un file batch in modo da poter eseguire l'operazione altre volte in maniera rapida. Il codice da inserire nel file . bat è il seguente:

@echo off
Title MySql Backup
set/p DB_NAME=Inserisci il nome del database da salvare:
echo Backup database MySql in corso...
 
set curr_date=%date:~6,4%-%date:~3,2%-%date:~0,2%
 
mysqldump -uUsername -pPassword --opt "%DB_NAME%" > c:\%DB_NAME%_Backup-%curr_date%.sql
 
echo.
echo Backup %DB_NAME% terminato
echo.
pause
 

Questo script chiede in ingresso il nome del database e lo salva in C aggiungendo al nome "_Backup" e la data di esecuzione in formato "YYY/MM/DD". Naturalmente è necessario di modificare l'assegnazione del parametro -u con l'username e -p con la password del database.

Lo script precedente effettua il backup di un solo database, per salvare tutti i database presenti è possibile modificare il comando nel seguente modo:

mysqldump -uUsername -pPassword --all-databases > c:\%DB_NAME%_Backup-%curr_date%.sql

Comprimere il backup

E' possibile comprimere il backup appena creato utilizzando gzip, in modo da ridurne le dimensioni e mantenere la compatibilità con l'importazione di PhpMyAdmin. Prima di tutto è necessario scaricare gzip per windows e poi copiare il file "gzip.exe" nella cartella "system32" di windows. Il codice da aggiungere al file .bat è il seguente:

gzip -v9 c:\%DB_NAME%_Backup-%curr_date%.sql

Lo script non fa altro che comprimere il file .sql generato da mysqldump e comprimerlo in un file .gzip avente lo stesso nome.

Backup Automatico

Per pianificare l'operazione di backup in modo che venga eseguita automaticamente è possibile impostare l'"utilità di pianificazione" di windows. E' sufficiente creare una nuova azione che ad ogni determinata ricorrenza (ogni giorno, una volta alla settimana, ogni mese, ecc.) esegua il file .bat.

Download: Backup database singolo | Backup tutti i database

Nota: Ho fatto questi script in 5 minuti poiché ne avevo bisogno urgentemente quindi sono abbastanza "grezzi", ogni suggerimento e/o critica è ben accetta ;-)