Dovrei usare mysqldump o mysqlhotcopy per i backup del database MySQL?


14

Ho un blog WordPress in esecuzione su un database MySQL di cui voglio eseguire regolarmente il backup. Sarebbe meglio usare il programma mysqldump o lo script mysqlhotcopy per fare i backup? Quali sono i pro ed i contro di ognuno? Ci sono altre opzioni che dovrei considerare?

Risposte:


5

Posso dirti che attualmente uso mysqldump per mantenere un backup del mio database. Lo faccio perché il mio obiettivo è quello di mantenere i backup settimanali in modo che, nel caso in cui qualcuno rimuova la / le sua / e pagina / e, sia in grado di recuperarla al massimo una settimana fa.

La cosa buona è che si tratta di un file di testo di base, quindi posso importarlo su qualsiasi computer con MySQL, caricarlo e cercare i dati mancanti. Nota: per ottenere ciò che volevo, il comando che sto usando nel mio script è questo:

mysqldump --databases databaseName > /file/path

Questo --databasesè ciò che fa in modo che mysqldump scarichi le CREATE DATABASE IF NOT EXISTintestazioni in modo da poterlo importare dove voglio.

Mentre questo metodo funziona per me, sono sicuro che ci sono metodi migliori là fuori per altri scopi. Posso anche dire che, come per qualsiasi soluzione di backup, è necessario memorizzarlo almeno su un altro computer e preferibilmente fuori sede (il nostro nel cloud), se possibile.


5

Vorrei prendere in considerazione l'utilizzo di un plug-in di WordPress chiamato "Backup del database di WordPress (WP-DB-Backup)" che è anche elencato nella guida di backup del database di Wordpress . Questo plugin può eseguire il backup del database in base a una pianificazione e inviarlo via e-mail (supponendo che sia un piccolo database). È inoltre possibile eseguire il backup solo localmente. È possibile escludere spam di commenti e revisioni per ridurre le dimensioni del DB

Meno controllo ma più facile da implementare.

I dump MySQL ti offrono il massimo controllo . Il tuo servizio di hosting può anche essere un fattore limitante. Alcuni host non ti danno accesso per eseguire cron job o eseguire il comando mysqldump.


4

SUGGERIMENTO # 1

Se si esegue un backup dell'istanza di MySQL, è consigliabile configurare MySQL Replicaton in modo che qualsiasi imporre il carico del server o aumentare l'I / O del disco non influisca in alcun modo sul database di produzione.

Dopo aver configurato MySQL Replication, puoi eseguire lo script di un mysqldump in diversi modi ( vedi il mio post su DBA StackExchange per la varietà di tecniche ), purché esegui quei mysqldump su uno Slave.

SUGGERIMENTO # 2

Se non è possibile configurare un altro server per MySQL Replication e tutti i tuoi dati sono InnoDB, dovrai eseguire un mysqldump temporizzato. Questo viene fatto usando l' --single-transactionopzione con mysqldump. Pertanto, se hai eseguito un mysqldump a partire da mezzanotte e il backup è terminato alle 12:15, l'output del mysqldump ripristinato riflette i dati a partire dalle 12:00.

SUGGERIMENTO # 3

Un altro programma disponibile per i backup MySQL è XtraBackup di Percona.

XtraBackup è uno strumento completo che si comporta come rsync ma ha uno scopo diretto nella vita. Può iniziare a copiare tutti i dati e i tablespace di InnoDB. Ha la capacità di creare checkpoint internamente ed eseguire sul posto un ripristino di crash InnoDB per ottenere un backup point-in-time perfetto. XtraBackup ha anche una funzione aggiuntiva che consente la creazione di backup incrementali. Un'altra caratteristica aggiuntiva è la creazione di file di registro InnoDB, anch'essi creati da un ripristino di emergenza sul posto. Esiste anche un software wrapper per fornire anche la copia congelata delle tabelle MyISAM.

Esegue una parte posteriore dell'istanza MySQL, ma con una netta differenza. Il punto temporale del backup si basa sul completamento del backup anziché su quando è stato avviato. Pertanto, se hai eseguito XtraBackup a partire da mezzanotte e il backup è terminato alle 12:15, l'output del mysqldump quando ripristinato riflette i dati alle 12:15.



1

Consiglio di utilizzare uno dei tanti script di backup mySQL preesistenti per risolvere il problema.

Uso "automysqlbackup" che è uno script di shell open source che può essere impostato come cron job sul server. Copre quasi ogni possibile situazione di backup: http://sourceforge.net/projects/automysqlbackup/ . Ha funzionato perfettamente per me per diversi anni - altamente raccomandato.


1

mysqlhotcopy è uno script Perl intorno al '05. Quindi aggiunge dipendenze, per Perl e vari Perl. Passerei questo.

mysqldump è un programma C distribuito con MySQL e gestito attivamente. Se aggiungi l'opzione -x, blocca le tabelle in modo da essere d'oro.

Personalmente ho questo script in cron (ti consigliamo di rimuovere quelle `escape se vuoi eseguirlo a mano) e funziona come un incantesimo per me, eseguendo il backup di ognuno dei miei database su un file locale, così come un dump completo di tutti i database.

E se hai più di un database lì, vorrai anche scaricare le sovvenzioni per loro. Maatkit ti aiuterà lì e avrai solo mk-show-grants -uroot -pPASSWORD > mygrantsdatabase.sqlil backup delle tabelle delle sovvenzioni e pronto per l'importazione.


0

So anche che numerosi strumenti di gestione dei server come Interworx ed Ensim utilizzano mysqldump per eseguire il backup dei database e quindi un semplice comando mysql per ripristinare. Da ciò sarebbe la mia ipotesi che questo è uno dei modi migliori.

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.