Dieser Abschnitt beschreibt die Schritte zum Starten eines Clusters.
Wie Sie hier sehen, gibt es mehrere Starttypen und -modi:
Initialstart: Der Cluster
startet mit einem sauberen Dateisystem auf allen Knoten.
Dies geschieht entweder, wenn der Cluster zum allerersten
Mal gestartet wird, oder wenn er mit der Option
--initial
neu gestartet wird.
Neustart des Systems: Der Cluster startet und liest die in den Datenknoten gespeicherten Daten. Dies geschieht, wenn der Cluster, nachdem er nach Benutzung heruntergefahren wurde, den Betrieb an dem Punkt wieder aufnehmen soll, an dem er sich verabschiedet hatte.
Neustart eines Knotens: Dies ist der Online-Neustart eines Cluster-Knotens, während der Cluster selbst noch läuft.
Initialer Knoten-Neustart: Dies ist im Grunde dasselbe wie der Neustart eines Knotens, nur dass der Knoten hier neu initialisiert und mit einem sauberen Dateisystem hochgefahren wird.
Vor dem Starten muss jeder Datenknoten
(ndbd
-Prozess) initialisiert werden. Hierzu
gehören folgende Schritte:
eine Knoten-ID besorgen
die Konfigurationsdaten beschaffen
die Ports für die Kommunikation zwischen den Knoten zuweisen
Hauptspeicher gemäß den Vorgaben der Konfigurationsdatei reservieren
Nachdem die Datenknoten initialisiert sind, kann der Startprozess des Clusters fortfahren. Dabei macht der Cluster folgende Stadien durch:
Stadium 0
Das Dateisystem des Clusters wird geleert. Dieses Stadium
tritt nur dann ein, wenn der Cluster
mit der Option --initial
gestartet wurde.
Stadium 1
Nun werden die Cluster-Verbindungen eingerichtet, die Kommunikationskanäle zwischen den Knoten zugewiesen und die Heartbeats des Clusters gestartet.
Stadium 2
Der Arbitratorknoten wird ausgewählt. Wenn es sich um einen Neustart des Systems handelt, ermittelt der Cluster den letzten wiederherstellbaren globalen Checkpoint.
Stadium 3
Eine Reihe von internen Cluster-Variablen wird initialisiert.
Stadium 4
Für einen Initialstart oder initialen Knoten-Neustart
werden die Redo-Logdateien angelegt. Die Anzahl dieser
Dateien ist gleich NoOfFragmentLogFiles
.
Bei einem System-Neustart:
werden das oder die Schema(ta) gelesen,
werden die Daten aus dem lokalen Checkpoint und den Redo-Logs gelesen,
werden alle Redo-Informationen angewendet, bis der letzte wiederherstellbare globale Checkpoint erreicht wurde.
Für einen Knoten-Neustart muss der Logtail des Redo-Logs gefunden werden.
Stadium 5
Wenn es sich um einen Initialstart handelt, werden die
internen Systemtabellen SYSTAB_0
und
NDB$EVENTS
angelegt.
Bei einem Knoten-Neustart oder initialen Knoten-Neustart:
wird der Knoten in die Transaktions-Behandlungsoperationen einbezogen.
wird das Knotenschema mit dem des Masters verglichen und synchronisiert,
werden die in INSERT
-Form von den
anderen Datenknoten der Knotengruppe dieses Knotens
empfangenen Daten synchronisiert.
In allen Fällen wird gewartet, bis der Arbitrator bestimmt, dass ein lokaler Checkpoint vollständig ist.
Stadium 6
Interne Variablen werden aktualisiert.
Stadium 7
Interne Variablen werden aktualisiert.
Stadium 8
Bei einem Neustart eines Systems werden alle Indizes neu aufgebaut.
Stadium 9
Interne Variablen werden aktualisiert.
Stadium 10
Bei einem Knoten-Neustart oder initialen Knoten-Neustart können sich an diesem Punkt APIs mit dem Knoten verbinden und Ereignisse empfangen.
Stadium 11
Bei einem Knoten-Neustart oder initialen Knoten-Neustart wird an diesem Punkt die Lieferung von Ereignissen an den Knoten übergeben, der dem Cluster beitritt. Dieser neue Knoten übernimmt dann die Verantwortung für die Lieferung seiner primären Daten an die Abonnenten.
Nachdem dieser Prozess für einen Initialstart oder Neustart eines Systems abgeschlossen ist, wird die Transaktionsunterstützung aktiviert. Bei einem Knoten-Neustart oder initialen Knoten-Neustart bedeutet das Ende des Startprozesses, dass der Knoten nun als Transaktionskoordinator fungieren kann.
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.