Olaf: Replikation unter MySQL

Hi,

ich habe ein Problem mit der Replikation bei MySQL.

Folgendes möchte ich erreichen:

Server1:
DB1

Server2:
DB2

Server3:
DB3

Dabei soll die Replikation so ablaufen:

DB1.tab -> DB2.tab -> DB3.tab

Der erste Schritt funktioniert ohne Probleme.
Die Konfiguration im Server2 (als Slave) lautet in etwa so:

replicate-rewrite-db = DB1->DB2
replicate-do-table = DB2.tab

Beim zweiten Slave gibt es aber Probleme.
D.h. anscheinend funktioniert das Rewriting dort nicht.
Lasse ich dort auch in DB2 replizieren, gibt es kein Problem.

Gibt es noch irgendwas zu beachten?

Danke!

Olaf

  1. echo $begrüßung;

    Beim zweiten Slave gibt es aber Probleme.
    D.h. anscheinend funktioniert das Rewriting dort nicht.
    Lasse ich dort auch in DB2 replizieren, gibt es kein Problem.

    Gibt es noch irgendwas zu beachten?

    Ja, bitte eine aussagekräftige Beschreibung des Problem. Am besten mit nachvollziehbarer angegebenen Konfigurationsdaten. Was hast du unternommen, um das "anscheinend" zu prüfen? Was sagen die Logfiles? Auch das Binary-Log lässt sich anschauen.

    echo "$verabschiedung $name";

    1. echo $begrüßung;

      Beim zweiten Slave gibt es aber Probleme.
      D.h. anscheinend funktioniert das Rewriting dort nicht.
      Lasse ich dort auch in DB2 replizieren, gibt es kein Problem.

      Gibt es noch irgendwas zu beachten?

      Ja, bitte eine aussagekräftige Beschreibung des Problem. Am besten mit nachvollziehbarer angegebenen Konfigurationsdaten. Was hast du unternommen, um das "anscheinend" zu prüfen? Was sagen die Logfiles? Auch das Binary-Log lässt sich anschauen.

      ja, ok.

      Also,

      Die Rechner sehen also so aus:

      A -> B -> C

      log ist eingeschaltet (um zu sehen, was passiert)
      bin-log ist eingeschaltet (überall).
      Server-Ids verschieden!
      Autoinkrement-Offset habe ich auch eingestellt, obwohl unwichtig, weil das in meinem Fall nur einen "Sender" gibt (also kein Ring bzw. kümmere ich mich selbst um Eindeutigkeit).

      Ich habe jetzt auch das Problem eingekreist:
      Der zweite Server, der also als Master und Slave fungiert, war das Problem. D.h. man muß "log-slave-updates" einschalten, damit er das weiter durchreicht.
      Wenn ich jetzt auf dem ersten Master(A) etwas schreibe, landet es auf beiden Slaves(B,C)!
      Wenn ich allerdings etwas direkt in den zweiten Master(B) schreiben, landet es nicht auf dem letzten Slave(C)!

      Es muß irgendwas mit dem Rewriting zu tun haben.

      Dies sieht so aus:

      A: DB1
      B: DB2
      C: DB3

      B:
      replicate-rewrite-db = db1->db2
      replicate-do-table = db2.tab

      C:
      replicate-rewrite-db = db2->db3
      replicate-do-table = db3.tab

      1. Noch ein Hinweis:

        Wenn ich auf dem zweiten Master ein truncate auf die entsprechende Tabelle durchführe, wird das durchgereicht!!!
        Ein insert funktioniert dagegen nicht.

        1. Ich habe den Fehler gefunden.
          Unglaublich bzw. schwer rauszufinden:
          phpMyAdmin ist das Problem! ;-)

          Anscheinend bekommt der 2. Slave (C) ein insert nicht mit, weil da (aus irgendeinem Grund) die benutzte DB nicht richtig übertragen wird.
          Aus meiner Anwendung funktioniert alles perfekt.

          Zufriedenstellend finde ich das jetzt allerdings nicht. Was macht phpMyAdmin da anders?

          Vielleicht hat da jemand einen Hinweis. Würde mich sehr interessieren.

          Liebe Grüße,
          Olaf