MySQL: backup incrementali automatici di tabelle InnoDB: mysql, backup, innodb

So che ci sono state domande simili / correlate su SO e altrove, e almeno penso di aver capito le varie opzioni.

Abbiamo un vasto db MySQL (edizione community)con tabelle InnoDB. Vorrei fare delle riprese quotidiane del DB per eseguire il backup off-site. Attualmente sto usando uno script mysqldump che viene eseguito da cron.daily. Tuttavia, sono necessarie 3 ore per scrivere la copia. Quindi - incrementale deve essere.

Poiché siamo un'edizione comunitaria e non possiamo permetterciEnterprise non abbiamo hotcopy InnoDB che sarebbe una soluzione praticabile in quanto non bloccante. L'altra opzione è attivare la registrazione binaria e prendere aggiornamenti incrementali. Ma questo sembra un dolore colossale e soggetto a errori: svuotamento e rotazione dei registri , registrazione di timestamp ecc. Il consiglio sembra essere quello di evitarlo, se possibile.

Quindi l'opzione finale è impostare la replica con una configurazione Master-Slave. "Ho scannerizzato i documenti ma non sono chiaro cosa costituisca un" Maestro "e cosa costituisca uno" Schiavo ". Quindi alcune domande:

  • Uno slave è un processo mysqld separato?
  • Lo slave può funzionare sulla stessa macchina del Master?
  • Una volta impostato e funzionante è necessario un intervento o il Master invierà fedelmente tutti gli aggiornamenti?
  • Per eseguire i miei backup senza influire sul Master, presumibilmente posso semplicemente eseguire mysqldump sullo slave?
  • E infine, questa è una soluzione ragionevole per mantenere un backup per la copia off-site?

Grazie Richard

risposte:

2 per risposta № 1

Uno slave è un processo mysqld separato?

non è necessario utilizzare un demone mysql separato,
nel master si abilita il registro binario
nello slave si configura relè-bin e le informazioni rilevanti sul master
(vedere http://dev.mysql.com/doc/refman/5.0/en/replication-howto.html)

Lo slave può funzionare sulla stessa macchina del Master?

Si ma non farlo ,
perché una volta che la macchina si è schiantata,
sia il tuo padrone che lo schiavo se ne sono andati
(DTP)

Una volta impostato e funzionante è necessario un intervento o il Master invierà fedelmente tutti gli aggiornamenti?

master spingerà fedelmente tutti gli aggiornamenti,
master registra il sqls di scrittura nel registro binario,
e slave dovrebbe ottenere il registro binario (come spiegato da @Johan, estrae dal master)

però,

  1. il blocco della tabella potrebbe comportare un ritardo di replica sullo slave
  2. query di scrittura non riuscita che non può essere eseguita su slave

puoi trattare la replica è solo un metodo che consente a TUTTI gli sqls di essere eseguiti su master,
copia su schiavo,
ed eseguire nuovamente nell'ordine di ricezione
(questo è ciò che fa il registro binario)

Per eseguire i miei backup senza influire sul Master, presumibilmente posso semplicemente eseguire mysqldump sullo slave?

Certo, questo è lo scopo di avere uno schiavo
Tuttavia, ci sarà qualche ritardo ...
quando scarichi i dati,
potresti bloccare la tabella per la scrittura (supponendo che innodb abbia un impatto minore),
mentre il maestro potrebbe continuare a scrivere

E infine, questa è una soluzione ragionevole per mantenere un backup per la copia off-site?

sì, questo è considerato come un ripristino di emergenza mysql


1 per risposta № 2

Uno slave è un processo mysqld separato?

Può essere, ma è più comunemente un server MySQL separato installato su una macchina diversa.

Lo slave può funzionare sulla stessa macchina del Master?

Sì, se è necessario, assegnargli un numero di porta diverso e un server_id diverso.
Si noti che non è molto un backup se si trova sulla stessa macchina.

Una volta impostato e funzionante è necessario un intervento o il Master invierà fedelmente tutti gli aggiornamenti?

Il maestro no push qualsiasi cosa, lo schiavo pulls gli aggiornamenti.

Per eseguire i miei backup senza influire sul Master, presumibilmente posso semplicemente eseguire mysqldump sullo slave?

Sì, ma se master e slave sono in esecuzione sulla stessa macchina, eseguono mysqldunmp volere rallentare quel server.

E infine, questa è una soluzione ragionevole per mantenere un backup per la copia off-site?

Sì, fuori sede è la parola chiave qui.
Vorrei posizionare lo schiavo fuori sede, il che ha molto più senso che avere lo schiavo sulla stessa macchina.

Ecco un tutorial
http://www.howtoforge.com/mysql_master_master_replication


Menu