Backup automatico di mysql su Ubuntu


12

Ho un server Ubuntu con un database MySQL. Vorrei impostare un backup automatico di questo database durante la notte su un altro server (ovh per esempio).

Non so quale sarebbe lo strumento migliore per quello. Se qualcuno ha qualche consiglio ...

Grazie in anticipo.

Risposte:


29

Il modo più semplice per automatizzare questa attività sarebbe la combinazione di MySQL Dumps e un cronjob. Puoi trovare molte informazioni su questo argomento su questo e altri siti Internet, ma per motivi di completamento:

Crea un file mysqldump.sh

Che conterrà il comando mysql dump che programmeremo in un processo cron (sostituisci utente, password e percorso in base al tuo ambiente):

mysqldump -u root -p<mysql_root_password> --all-databases | gzip > /desired/backup/folder/mysqldb_`date +%F`.sql.gz

Modifica: se si desidera che lo script memorizzi il backup in una posizione remota, montare semplicemente il dispositivo corrispondente o condividere e utilizzare il percorso di montaggio nello script.

Prova lo script

Assicurarsi che lo script disponga delle autorizzazioni di esecuzione:

chmod +x /path/to/mysqldump.sh

Esegui lo script:

sh /path/to/mysqldump.sh

E test funziona correttamente (il file di backup verrà creato nella cartella di backup specificata).

Crea e pianifica un nuovo lavoro cron

In un prompt dei comandi digitare

sudo crontab -e

E aggiungi la seguente riga nella parte inferiore del file:

30 23 * * * /path/to/mysqldump.sh

Questo eseguirà lo script ogni giorno alle 23:30.

Estendi questo semplice script

Ci sono letteralmente un sacco di cose che puoi fare per migliorare questo semplice metodo di backup:

  • Backup su un altro sistema
  • Monitorare lo spazio su disco
  • Segnalazione tramite email
  • ...

Quindi non finire qui e sperimentare! :-)

Utilizzare strumenti di backup o servizi di backup basati su cloud

Sebbene il metodo sopra descritto sia uno dei più semplici e possa essere esteso per soddisfare le tue esigenze specifiche, vale la pena ricordare che ci sono altre alternative:

  • strumenti di backup come AutoMySQLBackup, un'applicazione open source che potrebbe facilitare il processo di configurazione di notifica e-mail, compressione, crittografia, rotazione e tipo (ad es. incrementale) dei backup. Per quanto riguarda Mai 2018, è disponibile per Ubuntu Server tramite APT.
  • servizi di backup basati su cloud come BackupBird, myRepono, Bitcan, ecc. che potrebbero essere interessanti se si gestiscono diversi server di database e si desidera gestire centralmente tutti i loro backup.

Tieni presente che non sono in alcun modo correlato a nessuna delle soluzioni e dei servizi sopra menzionati e li sto elencando solo come riferimento, quindi utilizzali a tuo rischio.

Link / Riferimenti utili:

Cron -> https://en.wikipedia.org/wiki/Cron

MySQL Dump -> https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html


4
Usa date +%F- che sceglierà automaticamente una combinazione di anno + mese + data adatta alle impostazioni locali dell'utente (ad esempio, avrò YYYY-MM-DD).
muru,

Oh sì, molto meglio. Modificherò la risposta :-)
Eduardo López,

+1 Buona risposta: esattamente ciò che è necessario qui, niente di più, niente di meno.
Jos

2
Se devi usare sudo per fare questa operazione (a) chiama sudo crontab -ee non dimenticare di rendere eseguibile lo script:chmod +x /path/to/mysqldump.sh
zinon

zinon - Grazie per i suggerimenti! Ho aggiornato la risposta.
Eduardo López,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.