2008-08-06 13 views
19

Attualmente ho due server Linux che eseguono MySQL, uno seduto su un rack proprio accanto a me sotto una pipe da 10 Mbit/s (server principale) e un altro a qualche miglia di distanza su una pipe da 3 Mbit/s (mirror) .Replica completa del database MySQL completa? Idee? Cosa fanno le persone?

Desidero essere in grado di replicare i dati su entrambi i server continuamente, ma sono stati inseriti in più roadblock. Uno di questi è, sotto le configurazioni master/slave MySQL, di tanto in tanto, alcune istruzioni cadono (!), Nel senso; alcune persone che accedono all'URL del mirror non vedono i dati che conosco sul server principale e viceversa. Diciamo che questo accade su un blocco significativo di dati una volta al mese, quindi posso conviverci e pensare che si tratti di un problema di "pacchetto perduto" (ad esempio, dio lo sa, ma compenseremo).

L'altra più importante (e fastidioso) ricorrenti problema è che, quando per qualche motivo facciamo un importante caricamento o l'aggiornamento (o riavviare) su un'estremità e devono sever il collegamento, quindi caricare i dati da padrone non lo fa lavoro e devo scaricare manualmente da un'estremità e caricare dall'altra, piuttosto un compito che al giorno d'oggi sposta circa 0,5 TB di dati.

Esiste un software per questo? So che MySQL (la "società") offre questo come un 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 solo sull'altro server.

+0

Forse questo potrebbe essere l'ispirazione: [http://www.howtoforge.com/loadbalanced_mysql_cluster_debian](http://www.howtoforge.com/loadbalanced_mysql_cluster_debian) – svrist

risposta

0

GoldenGate è una soluzione molto buona, ma probabilmente costosa quanto il replicatore MySQL.

In pratica, il giornale si contrassegna e applica le modifiche in base a ciò che viene eseguito. Supportano la replica bidirezionale (un compito difficile) e la replica tra sistemi eterogenei.

Poiché funzionano elaborando il file journal, possono eseguire la replica distribuita su larga scala senza influire sulle prestazioni sui computer di origine.

0

Non ho mai visto caduto dichiarazioni ma c'è un bug in cui i problemi di rete potrebbero causare la corruzione relay log. Assicurati di non eseguire mysql senza questa correzione.

documentati nel 5.0.56, 5.1.24 e 6.0.5 changelog 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

3

Noi di Percona offrire strumenti gratuiti per rilevare discrepanze tra maestro e server, e per rimetterli in sincrono applicando nuovamente le modifiche minime.