Frage

Derzeit habe ich zwei Linux-Server, auf denen MySQL läuft, einer steht direkt neben mir auf einem Rack unter einer 10-Mbit/s-Upload-Pipe (Hauptserver) und ein anderer ein paar Meilen entfernt auf einer 3-Mbit/s-Upload-Pipe (Spiegel).

Ich möchte in der Lage sein, Daten kontinuierlich auf beiden Servern zu replizieren, bin aber auf mehrere Hindernisse gestoßen.Eine davon ist, dass unter MySQL-Master/Slave-Konfigurationen hin und wieder einige Anweisungen wegfallen (!), was bedeutet;Einige Leute, 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, dass dies einmal im Monat bei einem sinnvollen Datenblock passiert, also kann ich damit leben und davon ausgehen, dass es sich um ein Problem mit „verlorenen Paketen“ handelt (d. h. Gott weiß, aber wir werden das kompensieren).

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

Gibt es Software dafür?Ich weiß, dass MySQL (das „Unternehmen“) dies als SEHR teuren Service anbietet (vollständige Datenbankreplikation).Was machen die Leute da draußen?Aufgrund seiner Struktur führen wir ein automatisches Failover durch. Wenn ein Server nicht verfügbar ist, wird die Haupt-URL einfach auf den anderen Server aufgelöst.

Keine korrekte Lösung

Andere Tipps

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

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

Im Grunde verfolgt es das Journal und wendet Änderungen basierend auf den festgeschriebenen Daten an.Sie unterstützen die bidirektionale Replikation (eine schwierige Aufgabe) und die Replikation zwischen heterogenen Systemen.

Da sie die Journaldatei verarbeiten, können sie eine groß angelegte verteilte Replikation durchführen, ohne die Leistung auf dem/den Quellcomputer(n) zu beeinträchtigen.

Ich habe noch nie gelöschte 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 diesen Fix 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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top