Die MySQL-Replikation basiert darauf, dass der Master-Server alle Änderungen an Ihren Datenbanken (Updates, Löschvorgänge usw.) in seinen Binärlogs vermerkt. Aus diesem Grund müssen Sie das binäre Loggen auf dem Master-Server aktivieren. Siehe auch Abschnitt 5.12.3, „Die binäre Update-Logdatei“.
Alle Slave-Server erhalten vom Master die gespeicherten Änderungen, die der Master in seinem Binärlog vermerkt hat, sodass jeder Slave dieselben Änderungen an seiner Kopie der Daten vornehmen kann.
Es ist extrem wichtig, sich klar zu machen, dass das Binärlog nichts anderes als eine Aufzeichnung darstellt, die zu genau dem Zeitpunkt beginnt, an dem Sie das binäre Loggen aktivieren. Insofern benötigen alle zu konfigurierenden Slaves Kopien der Master-Datenbank mit ihrem Aussehen zum Zeitpunkt der Aktivierung der Binärlogs auf dem Master. Wenn Sie Ihre Slaves mit Datenbanken starten, die nicht hundertprozentig denselben Status haben wie der Master beim Aktivieren der Binärlogs, dann werden höchstwahrscheinlich Probleme auftreten.
Eine Möglichkeit, die Daten des Masters auf den Slave zu
kopieren, besteht im Absetzen der LOAD DATA FROM
MASTER
-Anweisung. Allerdings funktioniert LOAD
DATA FROM MASTER
nur, wenn alle Tabellen auf dem Master
die MyISAM
-Speicher-Engine verwenden. Ferner
erwirkt die Anweisung eine globale Lesesperre, d. h., während
die Tabellen auf den Slave übertragen werden, sind keine Updates
auf dem Master möglich. Sobald wir die Funktion für sperrenfreie
Tabellenbackups im laufenden Betrieb implementiert haben, wird
diese globale Lesesperre nicht mehr erforderlich sein.
Aufgrund dieser Einschränkungen empfehlen wir Ihnen bis auf
weiteres, LOAD DATA FROM MASTER
nur dann zu
verwenden, wenn die Datenmenge auf dem Master relativ gering oder
eine längere Lesesperre auf dem Master hinnehmbar ist. Zwar kann
die tatsächliche Geschwindigkeit von LOAD DATA FROM
MASTER
von System zu System variieren, aber als
Faustregel können Sie eine Übertragungsrate von 1 Mbyte
Daten/Sekunde erwarten. Dies ist ein grober Anhaltspunkt, der aber
recht genau sein sollte, wenn sowohl Master als auch Slave über
700-MHz-Pentium-Prozessoren verfügen und über ein Netzwerk mit
einer Übertragungsrate von 100 Mbit/s miteinander verbunden
sind.
Nachdem auf dem Slave eine Kopie der Master-Daten installiert
wurde, stellt er eine Verbindung zum Master her und wartet auf
Updates, die er verarbeiten kann. Fällt der Master aus oder
verliert der Slave die Verbindung zu ihm, dann versucht er in
regelmäßigen Abständen, die Verbindung neu herzustellen, bis
der Empfang von Updates wieder möglich ist. Die Option
--master-connect-retry
steuert das Intervall, in
dem die Neuverbindung versucht wird. Voreingestellt sind 60
Sekunden.
Jeder Slave vermerkt die Position, an der das Lesen beim letzten Update vom Master-Server beendet wurde. Der Master selbst weiß nicht, wie viele Slaves an ihn angeschlossen sind oder welche Slaves zu einem gegebenen Zeitpunkt aktuell sind.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.