Tag: MySQL

[Guide] – Backup automatico MySQL

mysqlbackupFacciamo un pò di luce su come effettuare i backup con AutoMySqlBackup perchè tutte le guide trovate fino ad ora su Internet non sono esaustive.

Innanzitutto cos’è AutoMySqlBackup ?

E’ uno script che permette di effettuare backup automatici giornalieri, settimanali e mensili di uno o più database presenti in mysql.

Per l’installazione consiglio di usare la Gestione Pacchetti o Ubuntu Software Center semplicemente perchè in questo modo l’installazione è automatica ed è inclusa la configurazione in cron.daily (che altrimenti occorrerebbe fare a mano, conoscendone ovviamente la astrusa sintassi).

In fase di installazione occorre selezionare la modalità locale (sempre ammesso che il database sia presente sulla macchina nella quale si installa lo script)

Lasciando il tutto così com’è, già tutto funziona; automaticamente lo script crea tre cartelle: “daily”, “monthly” e “weekly” all’interno di “/var/lib/autoysqlbackup”.

In ognuna di queste cartelle vengono create tante cartelle quanti sono i db presenti in mysql; all’interno di ognuna di queste verranno salvati in formato compresso i dump dei databases.

Fino qui tutto ok.

Ora, se si volesse fare in modo che vengano salvati solo alcuni db (personalmente ad esempio i db “information_schema”, “mysql”, “phpmyadmin” non mi interessano, in caso di disastro mi basta ricreare i db persi ed importare i dump che ho salvato ma comunque: de gustibus …”) e in una destinazione diversa da quella predefinita, occorre modificare lo script.

sudo gedit /etc/default/automysqlbackup

Username, cercare la sezione:

# Username to access the MySQL server e.g. dbuser

e modificare USERNAME in questo modo (attenzione, togliere # davanti a USERNAME qualora ci fosse)

USERNAME=”user”

dove user è il nome utente mysql che deve essere incluso tra virgolette, non tra apici come in origine Password, stessa cosa :

# Username to access the MySQL server e.g. password
PASSWORD="pwd"

dove pwd è la password dell’user mysql Elenco db da salvare, cercare questa sezione:

# The following is a quick hack that will find the names of the databases by
# reading the mysql folder content. Feel free to replace by something else.
# DBNAMES=`find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d’/’ -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ `
# This one does a list of dbs using a MySQL statement.

ed inserire i nomi dei database di cui si vuole effettuare il backup

DBNAMES=”DB1 DB2 DB2″

dove Db1 DB2 e DB3 sono i nomi dei databases separati da uno spazio Directory di backup

# Backup directory location e.g /backups
# Folders inside this one will be created (daily, weekly, etc.), and the
# subfolders will be database names. Note that backups will be owned by
# root, with Unix rights 0600.

inserire l’indirizzo della directory dove si vogliono salvare i dati

BACKUPDIR=”/var/backup”

io ci ho messo /var/backup ma ci si può mettere ciò che si vuole. A questo punto se si vuole si può lanciare lo script

automysqlbackup

giusto per vedere che succede, altrimenti si può aspettare finchè cron non lo faccia. Se tutto è a posto nella cartella che abbiamo impostato come destinazione ci saranno i backup dei nostri db. Attenzione, è facile che dopo averlo lanciato a mano, i backup nella cartella daily non ci siano, in questo caso controllate nella weekly (io ho lanciato lo script di sabato ed ho pensato che non funzionasse )