Detaillierte Erläuterung der Galera-Cluster-Bereitstellung im Clustermodus von MySQL

Detaillierte Erläuterung der Galera-Cluster-Bereitstellung im Clustermodus von MySQL

1: Einführung in Galera-Cluster

Galera Cluster ist eine kostenlose, Open-Source-Hochverfügbarkeitslösung, die von Codership entwickelt wurde. Die offizielle Website lautet http://galeracluster.com. Galera Cluster ist ein Mariadb-Cluster mit installiertem Galera (dieser Artikel stellt nur den Mariadb Garela-Cluster vor). Es verfügt über eine Multi-Master-Funktion und unterstützt Mehrpunktschreiben. Die drei (oder mehr) Knoten des Galera-Clusters stehen in einer Peer-Beziehung. Jeder Knoten unterstützt das Schreiben. Die Konsistenz und Integrität der geschriebenen Daten ist innerhalb des Clusters gewährleistet. Das spezifische Implementierungsprinzip wird in diesem Artikel kurz vorgestellt.

Die offiziellen Funktionen sind wie folgt:

  • Echter Multi-Master-Cluster, Active-Active-Architektur;
  • Synchrone Replikation, keine Replikationsverzögerung;
  • Multithread-Replikation;
  • Es gibt keinen Master-Slave-Umschaltvorgang und keine Notwendigkeit, eine virtuelle IP zu verwenden.
  • Hot Backup: Der Ausfall eines einzelnen Knotens hat keine Auswirkungen auf die Datenbankdienste.
  • Unterstützt automatisches Knotenverknüpfen, Daten müssen nicht manuell kopiert werden;
  • Unterstützt die InnoDB-Speicher-Engine;
  • Transparent für Anwendungen, native MySQL-Schnittstelle;
  • Keine Trennung von Lesen und Schreiben nötig;
  • Einfach bereitzustellen und zu verwenden.

2. Wie Galera-Cluster funktioniert

Das Hauptanliegen besteht in der Datenkonsistenz. Transaktionen können auf alle Knoten angewendet werden oder nicht auf alle. Solange sie richtig konfiguriert sind, bleiben die Datenbanken synchron.
Das Galera-Replikations-Plugin unterscheidet sich von der herkömmlichen MySQL-Replikation und kann mehrere Probleme lösen, darunter Multi-Master-Schreibkonflikte, Replikationsverzögerungen und Master-Slave-Asynchronität.

3: Bereitstellung des Galera-Clusters von MariaDB

3.1: Einführung in die Systemsoftwareumgebung

System: CentOS7.5x64

192.168.20.33 jiankong01.yl.com
192.168.20.34 jiankong02.yl.com
192.168.20.35 jiankong03.yl.com

Software: mariadb-galera-cluster.zip

3.2: Konfigurieren des Zeitsynchronisierungsservers

Der Flyfish-Host wurde mit dem Chronyd-Zeitserver konfiguriert

Der Zeitserver ist: 192.168.20.3

Wenn Sie nicht wissen, wie das geht, können Sie zur Installation des Big Data-Clusters CDH auf die Konfiguration des Zeitservers von Flyfish zurückgreifen.

Hinweise zur Installation und Konfiguration werden hier nicht mehr beschrieben.

3.3 MariaDB-Galear-Cluster installieren

Alle Clusterknoten führen Folgendes aus:

yum entfernen -y MariaDB-Libs 

yum install -y unzip boost-devel lsof perl-DBI perl-Data-Dumper

U/min -ivh U/min -ivh MariaDB-10.0.37-centos73-x86_64-* 

rpm -ivh MariaDB-Galera-10.0.37-centos73-x86_64-*

3.4 Knotenkonfigurationsdatei

Knoten 1: jiankong01.yl.com

cd /etc/my.cnf.d

vim server.conf
----
[mysqld]

#
# * Galera-bezogene Einstellungen
#
[Galerie]
# Obligatorische Einstellungen
wsrep_provider= /usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.20.33,192.168.20.34,192.168.20.35"
wsrep_cluster_name = "meinCluster"
wsrep_node_name = "jiankong01.yl.com"
wsrep_node-Adresse = '192.168.20.33'
binlog_format=Zeile
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
Bindeadresse = 0.0.0.0
#
# Optionale Einstellung
#wsrep_slave_threads=1
----
Knoten 2: jiankong02.yl.com

cd /etc/my.cnf.d/

vim server.conf

----
[mysqld]

#
# * Galera-bezogene Einstellungen
#
[Galerie]
# Obligatorische Einstellungen
wsrep_provider= /usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.20.33,192.168.20.34,192.168.20.35"
wsrep_cluster_name = "meinCluster"
wsrep_node_name = "jiankong02.yl.com"
wsrep_node-Adresse = '192.168.20.34'
binlog_format=Zeile
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
Bindeadresse = 0.0.0.0
#
# Optionale Einstellung
#wsrep_slave_threads=1
#innodb_flush_log_at_trx_commit=0
---
Knoten 3: jiankong03.yl.com

cd /etc/my.cnf.d/
vim server.conf
----
[mysqld]

#
# * Galera-bezogene Einstellungen
#
[Galerie]
# Obligatorische Einstellungen
wsrep_provider= /usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.20.33,192.168.20.34,192.168.20.35"
wsrep_cluster_name = "meinCluster"
wsrep_node_name = "jiankong03.yl.com"
wsrep_node-Adresse = '192.168.20.35'
binlog_format=Zeile
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
Bindeadresse = 0.0.0.0
#
# Optionale Einstellung
#wsrep_slave_threads=1
#innodb_flush_log_at_trx_commit=0
----

3.4 Starten Sie den Cluster

Auf jedem Knoten im Cluster ausführen

Dienst MySQL Start --wsrep-new-cluster

Hier nehmen wir Knoten 3 als Beispiel:

Knoten 1 und Knoten 2 führen aus:

Dienst MySQL starten 

3.5: Erstellen einer Datenbankinstanz

Knoten 1:

mysql -uroot -pQingchun123.com

Datenbank nCalInfo erstellen

Überprüfen Sie die Knoten 2 und 3

mysql -uroot -pQingchun123.com

Datenbanken anzeigen 

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So erstellen Sie einen MySQL PXC-Cluster
  • Bereitstellung eines MySQL-Hochverfügbarkeitsclusters und Implementierung eines Failovers
  • MySQL 5.7-Clusterkonfigurationsschritte
  • Implementierung der Docker-Bereitstellung eines MySQL-Clusters
  • Detaillierte Schritte zur Installation von MySQL mit Cluster-RPM
  • Detaillierte Erläuterung des MySQL-Clusters: Implementierung einer Master- und einer Slave-Architektur
  • So stellen Sie MySQL 5.7- und 8.0-Master-Slave-Cluster mit Docker bereit
  • Beispiel zum Erstellen eines MySQL-Clusters mit Docker
  • Tutorial zur grundlegenden Bereitstellung von MySQL Cluster
  • So erstellen Sie einen MySQL-Cluster mit hoher Verfügbarkeit und Leistung

<<:  Eine kurze Analyse der grundlegenden Implementierung von Vue-Erkennungsdatenänderungen

>>:  Grafisches Tutorial zur Installation einer virtuellen VMware-Maschine unter Linux

Artikel empfehlen

js zur Realisierung eines einfachen Puzzlespiels

In diesem Artikel wird der spezifische Code von j...

Beispielcode zur Implementierung des wellenförmigen Wasserballeffekts mit CSS

Heute habe ich einen neuen CSS-Spezialeffekt gele...

MySQL wählt den passenden Datentyp für die ID

Inhaltsverzeichnis Zusammenfassung der Distribute...

HTML+CSS+JavaScript zum Erstellen eines einfachen Tic-Tac-Toe-Spiels

Inhaltsverzeichnis Implementieren von HTML CSS hi...

MySQL implementiert den Vorgang zum Festlegen mehrerer Primärschlüssel

Benutzertabelle, ID-Nummer muss eindeutig sein, M...

HTML+jQuery zur Implementierung einer einfachen Anmeldeseite

Inhaltsverzeichnis Einführung Öffentlicher Code (...

Warum wird in React nicht empfohlen, einen Index als Schlüssel zu verwenden?

1. Vergleichen Sie den alten virtuellen DOM mit d...

Detaillierte Erläuterung der MySQL-Transaktionsverwaltungsvorgänge

Dieser Artikel beschreibt die MySQL-Transaktionsv...

Entwickeln Sie eine Vue-Komponente, die Iframe kapselt

Inhaltsverzeichnis 1. Komponenteneinführung 2. In...

So installieren Sie den Vim-Editor unter Linux (Ubuntu 18.04)

Sie können das Desktopsystem von der offiziellen ...

Erweiterte Docker-Methode zur schnellen Erweiterung

1. Befehlsmethode Führen Sie den Nginx-Dienst im ...

JavaScript-Methode zum Erkennen des Dateityps

Inhaltsverzeichnis 1. So zeigen Sie die Binärdate...

Tutorial zur Installation von mysql5.7.17 über yum auf redhat7

Die Linux-Betriebssysteme der RHEL/CentOS-Reihe v...