MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Vergleich von MariaDB Server mit MariaDB Cluster

MariaDB Server und MariaDB Cluster sind Open-Source-Produkte, die von der MariaDB Corporation betrieben werden. MariaDB Server ist eine der beliebtesten relationalen Datenbanken, sie wurde ursprünglich vom MySQL-Server abgezweigt.

MariaDB Cluster ist eine Hochverfügbarkeitslösung, die auf MariaDB Server aufgebaut ist und eine wsrep-Bibliothek von Galera Cluster verwendet, um die Daten zwischen Knoten zu synchronisieren. Die Replikationsmethode von Galera ist synchron (oder „praktisch synchron“) und stellt sicher, dass die Daten auf allen Knoten gleich sind.

MariaDB-Server kann auch per Standardreplikation hochverfügbar gemacht werden. Die Replikation kann asynchron oder halbsynchron erfolgen.

Wie unterscheidet sich also der MariaDB-Server mit Standardreplikation von MariaDB-Cluster mit Galera-Cluster? In diesem Blog werden wir diese beiden vergleichen. Wir werden ClusterControl verwenden, um einige der Unterschiede zu veranschaulichen.

MariaDB-Serverarchitektur

Die Architektur von MariaDB Server kann eine einzelne/eigenständige Instanz oder eine Master/Slave-Replikation sein, wie im folgenden Diagramm gezeigt.

Die Einzelinstanzarchitektur von MariaDB Server steht nur für einen Knoten. Der Nachteil einer einzelnen Instanz ist ein Single Point of Failure für die Datenbank. Wenn Ihre Datenbank abstürzt und nicht wieder hochfährt, haben Sie keinen Failover-Mechanismus und müssen eine Wiederherstellung durchführen, um Ihre Datenbank von der letzten Sicherung wiederherzustellen.

Die Master/Slave-Architektur ist ein verteiltes Setup, bei dem der Master als Schreiber und der/die Slave(s) als Leser fungieren. Mit einem Load Balancer wie Maxscale oder ProxySQL können Sie den Datenverkehr der Datenbank so aufteilen, dass Schreibvorgänge an den Master und Lesevorgänge an den/die Slave(s) gesendet werden. Ein Replikations-Setup eliminiert einen Single Point of Failure für die Datenbank, aber Sie müssen in der Lage sein, automatisch ein Failover durchzuführen, wenn der Master ausfällt. Andernfalls können Anwendungen nicht in die Datenbank schreiben und sind davon betroffen. ClusterControl kann so konfiguriert werden, dass automatisches Failover und Wiederherstellung für die MariaDB-Replikation bereitgestellt werden.

MariaDB-Cluster-Architektur

MariaDB-Cluster ist eine Hochverfügbarkeitslösung, die aus MariaDB-Server und Galera-Replikation besteht, wie im folgenden Architekturdiagramm gezeigt:

Es handelt sich um eine synchrone („praktisch synchrone“) Replikation aller Knoten sind beschreibbar. Die synchrone Replikation garantiert, dass Änderungen, die in einem der Galera-Knoten vorgenommen werden, auf allen anderen Knoten im Cluster verfügbar sind, bevor sie festgeschrieben werden.

Der große Unterschied besteht darin, dass alle Knoten aus Sicht der Anwendung gleich sind, sie können Schreibverkehr an jede der Datenbankinstanzen senden. Außerdem sollten alle Knoten genau die gleichen Daten haben, damit bei einem Knotenausfall kein Datenverlust auftritt.

MariaDB-Bereitstellung

Sowohl MariaDB Replication als auch MariaDB Cluster können über ClusterControl bereitgestellt werden. Wenn Sie MariaDB Server bereitstellen, müssen Sie zunächst MySQL Replication auswählen, während Sie für MariaDB Cluster MySQL Galera auswählen müssen.

Für MariaDB Server können Sie entweder eine MariaDB-Instanz mit einem einzelnen Knoten bereitstellen oder Master/Slave und bidirektionale Replikation einrichten. Die Mindestanzahl von Knoten in einem Replikationsaufbau ist zwei, Sie benötigen einen Master und mindestens einen Slave. Geben Sie einfach die IP-Adresse für den Master ein und fügen Sie Slaves hinzu (wenn Sie eine Master/Slave-Architektur haben möchten). Sie können das Feld Zweiten Master hinzufügen verwenden, wenn Sie eine bidirektionale Replikation einrichten möchten. Ein Master-Master-Setup wird mit bidirektionaler Replikation bereitgestellt, aber einer der Knoten wird als schreibgeschützt festgelegt. Der Grund dafür ist, das Risiko von Datendrift und „irrtümlichen Transaktionen“ zu minimieren.

Für MariaDB-Cluster benötigen Sie mindestens 3 Hosts für Zieldatenbankknoten installiert werden. Dies liegt daran, dass es in der Lage sein muss, mit der Netzwerkpartitionierung oder dem „Split-Brain“-Syndrom umzugehen. Sie müssen nur die IP-Adresse eingeben, wenn Sie Knoten hinzufügen, wenn Sie die Konfiguration des MySQL-Servers definieren.

Vergessen Sie nicht, MariaDB als Anbieter der Datenbank auszuwählen, Datenbankversion das Sie möchten das Root-Passwort installieren und ausfüllen. Sie können auch das nicht standardmäßige Datenverzeichnis in einen beliebigen anderen Pfad ändern.

Nachdem wir alle Dinge konfiguriert haben, stellen Sie einfach den Cluster bereit. Dadurch wird ein neuer Job für die Datenbankbereitstellung ausgelöst.

Beachten Sie, dass es auch möglich ist, 2 Galera-Knoten und einen Galera-Arbitrator alias garbd auf einem dritten Host zu haben.

MariaDB-Server- und Cluster-Überwachung

Datenbanküberwachung ist ein kritischer Teil der Datenbank, Sie können den aktuellen Zustand der Datenbank kennen. Der Unterschied zwischen MariaDB-Server- und MariaDB-Cluster-Überwachung sind Galera-Metriken für die Synchronisierung.

Auf MariaDB Server können Sie Ihren aktuellen Datenbankzustand über die MySQL-Metriken überprüfen; MySQL Server – Allgemein, MySQL Server – Caches, MySQL InnoDB-Metriken, die auch im MariaDB-Cluster sichtbar sind, wie unten gezeigt:

MySQL-Server - Allgemein gibt Ihnen Informationen über den aktuellen Status der InnoDB-Pufferpool-Trefferquote, Datenbankverbindung, Abfragen, Sperren und Datenbankspeicherauslastung.

MySQL-Server - Caches, es gibt viele Informationen in Caches. Bezieht sich hauptsächlich auf das Caching in der Datenbank, z. B.:Größe des Pufferpools, Instanz des Pufferpools. Es gibt auch Informationen über Tabellen-Cache-Nutzung, Trefferquote, Cache-Hits und Misses. Sie können auch Informationen zur Thread-Cache-Nutzung und zur Trefferquote finden .

MySQL-Server - InnoDB-Metriken zeigt Metriken im Zusammenhang mit InnoDB-Speicher, z. B.:Bufferpool-Aktivität, InnoDB-Zeilenoperationen, Größe der InnoDB-Protokolldatei, Lesen/Schreiben von InnoDB-Daten.

Wenn Sie auf MariaDB Server eine Master/Slave-Replikation einrichten, gibt es eine Unterkategorie von Metriken unter MySQL Replication – Master. Es gibt Informationen zur Master-Binärprotokolldatei, zur Position des Master-Binärprotokolls und zur Erstellungshäufigkeit des Binärprotokolls.

MariaDB Server hat viele Informationen bezüglich der Datenbank, diese sind auch für MariaDB Cluster verfügbar. Der Unterschied besteht darin, dass es zwei Dashboards für MariaDB Cluster gibt – Galera Overview und Galera Server Charts.

Die Galera-Übersicht enthält Informationen zum aktuellen Stand der Galera-Replikation. Es gibt Informationen wie Clustergröße, Flusskontrolle gesendet, Flusskontrolle empfangen, Flusskontrolle angehalten.

Galera Server Charts enthält Informationen über Cluster-Namen, Cluster-Status, Größe, globale Cache-Größe.

Fazit

MariaDB Server mit Standardreplikation und MariaDB Cluster sind keine wirklich unterschiedlichen Produkte in Bezug auf den Datenbankservice, aber sie haben je nach Ihren Anforderungen an Verfügbarkeit und Skalierbarkeit unterschiedliche Eigenschaften. ClusterControl unterstützt sowohl MariaDB-Server mit Standardreplikation als auch MariaDB-Cluster-Bereitstellungen, also probieren Sie beide Setups aus und teilen Sie uns Ihre Meinung mit.