Automatizzare il backup dei propri database MySQL su Windows e su Linux


SPONSORED LINKS

MySQL
Il backup di un database MySQL è un’operazione molto importante che soprattutto per un sito di livello medio/alto andrebbe effettuata anche giornalmente. In questo articolo vedremo come questo tipo di operazione sia facilmente automatizzabile attraverso la schedulazione di un semplice script da linea di comando, sia che utilizziate un server Linux che Windows.

Consiglio: Clicca qui per avviare una scansione degli errori del sistema ed ottimizzare le prestazioni del PC

Procedura per il backup di un database MySQL su Linux

  1. Create un file “/root/backup/backup.sh” e assicuratevi di assegnargli i permessi di esecuzione con il comando:
    chmod +x backup.sh
  2. Aprite il file “backup.sh” con il vostro editor preferito ed utilizzate la seguente sintassi per ogni DB da includere nella procedura di backup automatizzato:
    mysqldump -u[USERNAME] -p[PASSWORD] –-opt [DATABASE NAME] > [BACKUPFILE]

    Ecco come si presenta il contenuto di un file backup.sh di esempio che effettua il backup di due database:

    mysqldump -uUser1 -pPassword1 --opt Database1 > /root/backup/Database1.sql
    mysqldump -uUser2 -pPassword2 --opt Database2 > /root/backup/Database2.sql
    dt=`date +%y%m%d`
    tar cvf /root/backup/sqlbackup-$dt.tar /root/backup/*
  3. Schedulate l’esecuzione del backup in modo che sia effettuato giornalmente (a mezzanotte) lanciando il comando:
    crontab -e

    ed inserendo la riga:

    00 00 * * * root sh /root/backup/backup.sh

Procedura per il backup di un database MySQL su Windows

  1. Create un file “c:\backup\backup.bat“, apritelo con il vostro editor preferito e utilizzate la seguente sintassi per ogni DB da includere nella procedura di backup automatizzato:
    mysqldump -u[USERNAME] -p[PASSWORD] –-opt [DATABASE NAME] > [BACKUPFILE]

    Ecco come si presenta il contenuto di un file backup.bat di esempio che effettua il backup di due database:

    set dt=%date:~6,4%-%date:~3,2%-%date:~0,2%
    mysqldump -uUser1 -pPassword1 --opt Database1 > c:\backup\Database1-%dt%.sql
    mysqldump -uUser2 -pPassword2 --opt Database2 > c:\backup\Database2-%dt%.sql

    [Attenzione: il comando prevede la generazione di un file di backup con la data odierna aggiunta in maniera automatica nel formato "YYYY-MM-DD" ed è relativo ad un sistema operativo configurato per la lingua italiana.]

  2. Schedulate l’esecuzione del backup in modo che sia effettuato giornalmente (a mezzanotte) lanciando il comando:
    AT 00:00 /EVERY:m,t,w,th,f,s,su c:\backup\backup.bat

A questo punto non dovete far altro che storicizzare (magari su nastro o CD) i files di backup generati.
L’unica differenza reale tra le due procedure è il fatto che su nel primo caso viene creato anche un archivio compresso attraverso il comando tar normalmente disponibile su Linux. Per ottenere un effetto analogo su Windows dovete installare un’utility di compressione come WinZip o Compact (dal resource kit).

Ti è piaciuto l'articolo?
Iscriviti alla newsletter per ricevere in tempo reale tutte le notizie e gli aggiornamenti!

Articoli correlati a "Automatizzare il backup dei propri database MySQL su Windows e su Linux"


Commenti

4 Risposte to “Automatizzare il backup dei propri database MySQL su Windows e su Linux”
  1. daniele scrive:

    ciao,
    sto provando a implementare questo file .bat con questi comandi

    dt=%date:~6,4%-%date:~3,2%-%date:~0,2%
    mysqldump -uroot -p12345 –opt sql1_db_1 > c:\inetpub\wwwroot\archivi\Database1-%dt%.sql

    ma mi vien fuori un file con 0Kb e il cui nome non registra la variabile dt

    praticamente il nome è Database1-.sql senza i riferimenti cronologici

    mi dai una dritta? grazie daniele.

  2. davide scrive:

    @daniele: verifica cosa ti compare se da prompt lanci il comando:
    echo %date:~6,4%-%date:~3,2%-%date:~0,2%

  3. daniele scrive:

    lo scrivo da prompt di dos (scusa se lo specifico ma non sono molto pratico e non vorrei sbagliare) mi vien fuori 2008-09-05
    credo sia corretto

  4. daniele scrive:

    rettifica:
    il fatto che veniva fuori un file con contenuto 0Kb l’ho risolto mettendo lo script all’interno della cartella Mysql\bin dove si trova il programma mysqldump

    ho provato a mettere il file .bat nella cartella del mio programma, indicandogli per esteso il percorso, ma non va!

    ora resta il problema che non scrive la data. c’è soluzione???

    :-) grazie

Lascia un commento