Von Matthias Jung auf Montag, 28. August 2023
Kategorie: MySQL (PDO)

Lesen lernen: Der MySQL InnoDB Cluster & Read Replicas

Mit dem brandneuen Innovation Release 8.1.0 hat Oracle dem MySQL InnoDB Cluster wieder ein neues „Feature“ spendiert: „Read Replicas“. Darüber lässt sich ein InnoDB Cluster um weitere, reinlesenden Instanzen ergänzen. Wie dies funktioniert und warum dies Sinn ergeben kann, erfahren Sie in diesem Beitrag. 

A, B, C

Ein InnoDB Cluster besteht in der Regel aus drei Knoten, welche in einer „shared nothing“-Architektur Daten hochverfügbar bereitstellen. Der Ausfall eines Knotens stellt so z. B. für den Betrieb einer Anwendung, aus Datenbank-Perspektive, kein Problem dar. Der Preis für dieser Art der Verfügbarkeit wird über Latenzen eingekauft. Da Transaktionen in einem Cluster immer von allen beteiligten Knoten verarbeitet werden müssen, kann es zu längeren Laufzeiten kommen. Wir haben bereits umfangreich über den InnoDB Cluster an dieser Stelle berichtet.

Dies ist z. B. dann problematisch, wenn die Knoten eines Clusters geografisch weit auseinanderliegen und damit naturgemäß die Latenzen höher werden. In solchen Fällen kann es hilfreich sein, einen Cluster eher aus lokal nah zusammenliegenden Knoten aufzubauen und auf ein geografisch entfernteres System zu replizieren. Dies war bis dato nicht einfach möglich, da die replizierenden Systeme Kenntnis vom Cluster haben müssen. Im Fall des Ausfalls eines Knotens im Cluster soll das Replikat „einfach“ von einem anderen Knoten weiter replizieren. Dies ist nun möglich.

Die richtigen Worte finden

Zur Demonstration setzen wir mittels der MySQL Shell einen „europäischen“ InnoDB Cluster aus den Systemen „frankfurt“, „hamburg“ und „berlin“ auf. Unser Cluster trägt den Namen „ordix“. Aus Gründen der Übersichtlichkeit haben wir die Ausgaben der Kommandos gekürzt. Die Kommandos an sich wurden jedoch fett hervorgehoben: 

Lesen lernen

Um den Cluster um ein „Read Replica“ zu erweitern, nutzen wir wieder den Komfort der MySQL Shell. Der grundlegende Aufruf besteht nur aus einem Kommando.

Bei Bedarf können aber sehr fein granular Parameter genutzt werden, um den Aufbau des „Replicas“ zu manipulieren. So kann neben dem Namen des Replikats, die Quelle des Klonprozesses bestimmt werden, auf welchen Systemen ein „Failover“ stattfinden und von welchem System die Replikation generell Daten lesen soll.

Das Ergebnis unserer Bemühungen können wir, wie gewohnt, mit dem Cluster Status überprüfen: 

Zusammenfassung

Oracle entwickelt den MySQL InnoDB Cluster immer weiter. Nach dem vor Kurzem eingeführten „Replica Sets“ folgen nun konsequenterweise die „Read Replicas“. Sie verbinden den Cluster mit den Vorteilen einer „normalen“ Replikation. Wir selbst haben bereits den ersten Kunden, der sehnsüchtig auf dieses „Feature“ wartet, um seine Umgebung sicherer zu gestalten.

Sie haben Fragen rund um den Betrieb von MySQL? Sprechen Sie mit uns.

Seminarempfehlung

Kommentare hinterlassen