Replikation unter MySQL
Olaf
- datenbank
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
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";
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
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.
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