310 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
Aktualisierungen auftreten k¨onnen, die in unterschiedlicher Reihenfolge auf verschiede-
nen Servern laufen.
Das bedeutet, dass Sie eine Einrichtung wie die folgende machen k¨onnen:
A -> B -> C -> A
Diese Einrichtung funktioniert nur dann, wenn Sie ausschließlich Aktualisierungen
ausf¨uhren, die nicht zwischen den Tabellen zu Konflikten f¨uhren. Mit anderen Worten,
wenn Sie Daten in A und C einf¨ugen, sollten Sie nie eine Zeile in A einf¨ugen, die zu
einem Konflikt mit einem Schl¨usselwert bei einem Zeilen-Einf¨ugevorgang in C f¨uhrt.
Ebenfalls sollte Sie nie dieselben Zeilen auf zwei Servern einf¨ugen, wenn die Reihenfolge,
in der die Aktualisierungen durchgef¨uhrt werden, eine Rolle spielt.
Beachten Sie, dass sich das Log-Format in Version 3.23.26 ge¨andert hat, so das Slaves
vor Version 3.23.26 diese nicht lesen k¨onnen.
• Wenn die Anfrage auf dem Slave zu einem Fehler f¨uhrt, beendet sich der Slave-Thread
und in der .err-Datei erscheint eine Meldung. Sie sollten sich dann manuell mit
dem Slave verbinden, die Ursache des Fehlers beheben (zum Beispiel nicht existierende
Tabellen) und dann den SQL-Befehl SLAVE START laufen lassen (verf¨ugbar ab Version
3.23.16). In Version 3.23.15 m¨ussen Sie den Server neu starten.
• Wenn die Verbindung zum Master verloren geht, versucht der Slave unmittelbar, sich
neu zu verbinden, und wenn das fehlschl¨agt, alle master-connect-retry Sekunden
(Vorgabe 60 Sekunden). Deswegen ist es sicher, den Master herunter zu fahren und
dann nach einer Weile wieder hochzufahren. Der Slave ist auch in der Lage, mit
Netzwerk-Verbindungsausf¨allen umzugehen.
• Den Slave (sauber) herunterzufahren ist ebenfalls sicher, weil er sich merkt, wo er
aufgeh¨ort hat. Unsauberes Herunterfahren kann zu Problemen f¨uhren, insbesondere
dann, wenn der Platten-Cache nicht synchronisiert wurde, als das System starb. Die
Fehlertoleranz Ihres Systems wird stark verbessert, wenn Sie ein gutes UPS haben.
• Wenn der Master auf einem Port auf Anfragen wartet, der nicht Standard ist, m¨ussen
Sie diesen mit dem master-port-Parameter in my.cnf angeben.
• In Version 3.23.15 werden alle Tabellen und Datenbanken repliziert. Ab Version 3.23.16
k¨onnen Sie die Replikation mit der replicate-do-db-Anweisung in my.cnf auf einen
Satz von Datenbanken beschr¨anken oder einen Satz von Datenbanken mit replicate-
ignore-db ausschließen. Beachten Sie, dass es bis Version 3.23.23 einen Bug gab, so
dass mit LOAD DATA INFILE nicht sauber umgegangen wurde, wenn Sie diesen Befehl
in einer Datenbank ausf¨uhrten, die von der Replikation ausgeschlossen war.
• Ab Version 3.23.16 schaltet SET SQL_LOG_BIN = 0 Replikations-(Bin¨ar)-Loggen auf dem
Master aus und SET SQL_LOG_BIN = 1 schaltet es wieder an. Sie ben¨otigen die process-
Berechtigung, um das auszuf¨uhren.
• Ab Version 3.23.19, you can clean up stale Replikation leftovers when something goes
wrong und you want a clean start mit FLUSH MASTER und FLUSH SLAVE-Befehle. In
Version 3.23.26 we have renamed them to RESET MASTER und RESET SLAVE respectively
to clarify what they do. The old FLUSH variants still work, though, for Kompatibilit¨at.
• Ab Version 3.23.21, you can use LOAD TABLE FROM MASTER for network backup und
to set up Replikation initially. We have recently received a Anzahl von bug reports
concerning it that we are investigating, so we recommend that you use it only in testing
until we make it mehr stable.
Comentarios a estos manuales