2009-09-07 19 views
8

Uso il seguente comando rsync per eseguire il backup dei dati MySQL su una macchina all'interno della rete LAN. Funziona come previsto.Utilizzo di rsync per eseguire il backup di MySQL

rsync -avz /mysql/ root:[email protected]:: /root/testme/ 

Voglio solo assicurarmi che questo sia il modo corretto di usare rsync.

Mi piacerebbe anche sapere se la voce crontab 5 minuti per questo funzionerà.

risposta

16
  1. non utilizzare l'utente root della macchina remota per questo. In realtà, non connettersi mai direttamente all'utente root, si tratta di una perdita di sicurezza importante. In questo caso, è sufficiente creare un nuovo utente con pochi privilegi che possono scrivere solo per la posizione di backup
  2. Non utilizzare una password per questo collegamento, ma invece utilizzare public-key authentication
  3. Assicurarsi che MySQL non è in esecuzione quando si esegue questo, oppure puoi facilmente ottenere un backup corrotto.
  4. Utilizzare mysqldump per creare un dump del database mentre MySQL è in esecuzione. È quindi possibile copiare in modo sicuro tale discarica.
5

Non so davvero quale sia il comando rsync, ma non sono sicuro che questo sia il modo giusto/migliore per eseguire il backup con MySQL; probabilmente dovresti dare un'occhiata a questa pagina del manuale: 6.1. Database Backups

I backup del DB non sono necessariamente così semplici come si potrebbe pensare, considerando problemi come serrature, scrittura ritardata e qualsiasi altra ottimizzazione che MySQL può fare con i suoi dati. Soprattutto se i tuoi tavoli non utilizzano il motore MyISAM.

Informazioni su "5 minuti crontab": si esegue questo backup ogni cinque minuti? Se i tuoi dati sono ragionevoli, dovresti pensare a qualcos'altro, come la replica su un altro server, per avere sempre una copia aggiornata.

6

Trovo che un modo migliore di eseguire i backup di MySQL sia utilizzare la funzione di replica.

impostare la macchina di backup come slave del master. Ogni transazione viene quindi automaticamente rispecchiata.

È anche possibile arrestare lo slave ed eseguire un backup completo su nastro da esso. Quando si riavvia lo slave, si sincronizza nuovamente con il master.

+1

Questo funzionerà solo se si dispone di binlog completi sul master. A volte è meglio ripristinare lo slave da un backup leggermente obsoleto (preso con 'mysqldump --master-data'), seguito da uno' slave start', per garantire che il database risultante sia completo. –

+0

Sì, duplica le scritture del database su un'altra macchina. Quindi, quando elimini accidentalmente un'intera tabella o database, puoi semplicemente andare al tuo server MySQL replicato e ... oh merda. – Ernie

Problemi correlati