Domanda

Attualmente ho due server Linux che eseguono MySQL, uno seduto su un rack proprio accanto a me sotto un pipe di upload da 10 Mbit/s (server principale) e un altro a qualche paio di chilometri di distanza su un pipe di upload da 3 Mbit/s (mirror).

Desidero essere in grado di replicare i dati su entrambi i server in modo continuo, ma ho riscontrato diversi ostacoli.Uno di questi è che, nelle configurazioni MySQL master/slave, di tanto in tanto, alcune istruzioni cadono (!), il che significa;alcune persone che accedono all'URL del mirror non vedono i dati che so essere sul server principale e viceversa.Diciamo che ciò accade su un blocco significativo di dati una volta al mese, quindi posso conviverci e supporre che si tratti di un problema di "pacchetto smarrito" (cioè, Dio lo sa, ma compenseremo).

L'altro problema ricorrente più importante (e fastidioso) è che, quando per qualche motivo eseguiamo un caricamento o un aggiornamento importante (o un riavvio) su un'estremità e dobbiamo recidere il collegamento, quindi LOAD DATA FROM MASTER non funziona e devo eseguire manualmente il dump da un lato e il caricamento dall'altro, un compito piuttosto impegnativo al giorno d'oggi per spostare circa 0,5 TB di dati.

Esiste un software per questo?So che MySQL (la "società") offre questo servizio MOLTO costoso (replica completa del database).Cosa fanno le persone là fuori?Per come è strutturato, eseguiamo un failover automatico in cui se un server non è attivo, l'URL principale si risolve semplicemente nell'altro server.

Nessuna soluzione corretta

Altri suggerimenti

Noi di Percona offriamo strumenti gratuiti per rilevare discrepanze tra master e server e per riportarli in sincronia applicando nuovamente modifiche minime.

Cancello dorato è un'ottima soluzione, ma probabilmente costosa quanto il replicatore MySQL.

Fondamentalmente segue il diario e applica le modifiche in base a ciò che è stato impegnato.Supportano la replica bidirezionale (un compito difficile) e la replica tra sistemi eterogenei.

Poiché funzionano elaborando il file journal, possono eseguire repliche distribuite su larga scala senza influire sulle prestazioni delle macchine di origine.

Non ho mai visto dichiarazioni eliminate, ma esiste un bug in cui i problemi di rete potrebbero causare il danneggiamento del registro di inoltro.Assicurati di non eseguire mysql senza questa correzione.

Documentato nei log delle modifiche 5.0.56, 5.1.24 e 6.0.5 come segue:

   Network timeouts between the master and the slave could result
   in corruption of the relay log.

http://bugs.mysql.com/bug.php?id=26489

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top