mySQL master master Replikation - Auto-ID-Inhaltsfeldern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • mySQL master master Replikation - Auto-ID-Inhaltsfeldern

    Hallo,

    ich betreibe zur Zeit 3 Server, die folgende Aufgaben haben:

    S0: Systemserver, Vernetzung, Firewall, Proxy, Cache-Server, Apache2-Master, mySQL-Master
    S1: Backendserver, Apache2-Slave, mySQL-Master, NFS-Master
    S2: Backendserver, Mediaserver (FFMPEG, Imagemagick), Apache2-Slave, mySQL-Master, NFS-Slave

    Die mySQL-Replikation ist zur Zeit so aufgebaut: S0 <> S1 <> S2 <> S0 - Also als Ring-Replikation, Master-Master.

    Leider gibt es immer wieder Fehler mit den Auto-ID-Inhaltsfeldern, da es zu überschneidungen kommt. Die Möglichkeit des Offsets hat leider auch nicht geholfen.

    Nun meine Frage: Hat jemand eine bessere Idee? Ein mySQL-Cluster kommt nicht in Frage, da ich FULLTEXT benötige.
  • Hi,

    Gnex schrieb:

    da es zu überschneidungen kommt. Die Möglichkeit des Offsets hat leider auch nicht geholfen.

    Wie meinst du das? Zu welchen Konflikten kommt es?
    Wenn du mit den replikations offset Parametern arbeitest dann fügt Server1 (bei Schrittweite 5): 1, 6, 11, 16, ... ein und Server2 nutzt 2, 7, 12, ...
    Damit kann es zu keinen Replikationsfehlern kommen.

    Was willst du mit deiner Architektur erreichen? Multi Master ganz ohne MySQL Slave? Hast du mehr Writes als Reads?
    Da ich weiß dass du das WCF nutzt, vermute ich fast, dass die den Multi Master nur gewählt hast, weil die Anwendung nicht zwischen Master und Slave unterscheiden kann. Hier würde ich dir einen MySQL Proxy empfehlen, der Writes und Reads auf jeweils andere Server leitet.
  • Hi,

    es kommt zu einem Insert-Konflikt bei den ID's. Mit den offset-Parametern habe ich breits gearbeitet und wie oben schon erwähnt, ohne Erfolg - Wieso genau, kann ich mir auch nicht erklären.
    Das mySQL-System wird zugleich mit Writes und Reads belastet.

    Diese Architektur habe ich gewählt, da ich zwei Backendserver (S1, S2) habe, die die Webseite im Apache2-Cluster ausliefern und so jeder Backendserver seinen eigenen mySQL-Server haben sollte (Lastverteilung).


    Da ich mir Gestern mySQL 5.1 aus den Debian-Backports geholt und erfolgreich installiert habe, mal eine Frage zum neuen mySQL-Cluster: Bestehen dort immer noch die Nachteile von FULLTEXT und Datenverlust? Leider habe ich in der Dokumentation von Sun nichts gefunden.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Gnex ()

  • Werfen wir nicht zu viele Fragen auf einmal auf..

    Also den Insert Konflikt musst du nochmal beschreiben. Irgendeine Fehlermeldung musst du ja gesehen um zur Folgerung zu kommen, dass es nicht funktioniert hat.
    Hast du MySQL denn nach dem Setzen der Variable neugestartet? Wenn du nur einen Server im Cluster hattest, sind die Auto Increment dann wie beschrieben mit den Intervall werten hochgezählt worden?

    Du musst sowohl auto-increment-offset als auch auto-increment-increment setzen. Der auto-increment-increment muss überall gleich sein (z.B. 5) - auto-increment-offset setzt du am besten auf die ServerID (ACHTUNG: Zählung beginnt bei 1)