oracle - Vollständige vollständige Replikation der MySQL-Datenbank? Ideen? Was machen Leute?

Translate

Derzeit laufen auf zwei Linux-Servern MySQL, einer auf einem Rack direkt neben mir unter einer 10-Mbit / s-Upload-Pipe (Hauptserver) und einer einige Meilen entfernt auf einer 3-Mbit / s-Upload-Pipe (Spiegel).

Ich möchte in der Lage sein, Daten auf beiden Servern kontinuierlich zu replizieren, bin aber auf mehrere Hindernisse gestoßen. Eine davon ist, dass unter MySQL-Master / Slave-Konfigurationen hin und wieder einige Anweisungen fallen (!), Was bedeutet; Einige Personen, die sich bei der Spiegel-URL anmelden, sehen keine Daten, von denen ich weiß, dass sie sich auf dem Hauptserver befinden, und umgekehrt. Nehmen wir an, dies geschieht einmal im Monat in einem aussagekräftigen Datenblock, sodass ich damit leben und davon ausgehen kann, dass es sich um ein Problem mit "verlorenen Paketen" handelt (dh, Gott weiß, aber wir werden dies kompensieren).

Das andere wichtigste (und ärgerlichste) wiederkehrende Problem ist, dass wir aus irgendeinem Grund einen größeren Upload oder ein Update (oder einen Neustart) an einem Ende durchführen und müssentrennenDer Link, dann LOAD DATA FROM MASTER, funktioniert nicht und ich muss manuell an einem Ende sichern und am anderen hochladen, was heutzutage eine ziemliche Aufgabe ist, Daten im Wert von 0,5 TB zu verschieben.

Gibt es dafür Software? Ich weiß, dass MySQL (das "Unternehmen") dies als SEHR teuren Service anbietet (vollständige Datenbankreplikation). Was machen die Leute da draußen? In der Art und Weise, wie es strukturiert ist, führen wir ein automatisches Failover durch. Wenn ein Server nicht aktiv ist, wird die Haupt-URL nur auf den anderen Server aufgelöst.

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Wir bei Percona bieten kostenlose Tools an, um Diskrepanzen zwischen Master und Server zu erkennen und sie durch erneutes Anwenden minimaler Änderungen wieder zu synchronisieren.

Quelle
Translate

GoldenGateist eine sehr gute Lösung, aber wahrscheinlich genauso teuer wie der MySQL-Replikator.

Grundsätzlich wird das Journal beendet und es werden Änderungen basierend auf den festgeschriebenen Daten angewendet. Sie unterstützen die bidirektionale Replikation (eine schwierige Aufgabe) und die Replikation zwischen heterogenen Systemen.

Da sie die Journaldatei verarbeiten, können sie eine verteilte Replikation in großem Maßstab durchführen, ohne die Leistung auf den Quellcomputern zu beeinträchtigen.

Quelle
Translate

Ich habe noch nie verworfene Anweisungen gesehen, aber es gibt einen Fehler, bei dem Netzwerkprobleme zu einer Beschädigung des Relay-Protokolls führen können. Stellen Sie sicher, dass Sie MySQL nicht ohne dieses Update ausführen.

In den Änderungsprotokollen 5.0.56, 5.1.24 und 6.0.5 wie folgt dokumentiert:

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

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

Quelle