GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie den MariaDB Galera-Cluster unter Ubuntu 16.04

MariaDB Galera ist ein Multi-Master-Cluster für MariaDB. Seit MariaDB 10.1 wurden die Pakete MariaDB Server und MariaDB Galera Server kombiniert und Galera-Pakete und ihre Abhängigkeiten werden bei der Installation von MariaDB automatisch installiert. Derzeit unterstützt MariaDB Galera Cluster nur die InnoDB/XtraDB-Speicher-Engine. In MariaDB 10.0 und 5.5 müssen Sie es separat herunterladen. MariaDB Galera fügt Redundanz für die Datenbank einer Website hinzu. In MariaDB Galera Cluster sind mehrere Datenbankserver miteinander verbunden und werden synchronisiert.

MariaDB Galera bietet viele Funktionen, einige davon sind unten aufgeführt:

  1. Synchrone Replikation.
  2. Automatischer Knotenbeitritt.
  3. Aktiv-Aktiv-Multi-Master-Topologie.
  4. Echte parallele Replikation auf Zeilenebene.
  5. Lese- und Schreibskalierbarkeit, kleinere Client-Latenzen.
  6. Ausgefallene Knoten, automatisches Löschen aus dem Cluster.

In diesem Tutorial erklären wir, wie Sie MariaDB Galera Cluster 10.1 mit 3 Knoten einrichten, die auf einem Ubuntu 16.04-Server ausgeführt werden. Wir werden auch die Datenbankreplikation zwischen allen Knoten testen.

Anforderungen

  • Drei Knoten, auf denen Ubuntu 16.04-Server ausgeführt wird.
  • Knoten1 mit der statischen IP-Adresse 192.168.0.102, Knoten2 mit der statischen IP-Adresse 192.168.0.103 und Knoten3 mit der statischen IP-Adresse 192.168.0.104 auf Ihrem Server konfigurieren.
  • Nicht-Root-Benutzer mit sudo-Berechtigungen auf allen Knoten eingerichtet.

Erste Schritte

Zuerst müssen Sie alle Knoten mit der neuesten Version aktualisieren. Sie können alle mit dem folgenden Befehl aktualisieren:

sudo apt-get update -y
sudo apt-get upgrade -y

Starten Sie als Nächstes alle Knoten neu, um diese Änderungen zu übernehmen. Melden Sie sich dann mit sudo user an und fahren Sie mit dem nächsten Schritt fort.

Installieren Sie MariaDB Galera

Die Pakete MariaDB Server und MariaDB Galera Server sind in der Version MariaDB 10.1 kombiniert. Standardmäßig ist MariaDB 10.1 nicht in den standardmäßigen Ubuntu-Repositorys verfügbar, daher müssen Sie das MariaDB-Repository auf allen Knoten hinzufügen.

Fügen Sie zuerst den MariaDB-Repository-Schlüssel mit dem folgenden Befehl hinzu:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Fügen Sie als Nächstes das Repository hinzu und aktualisieren Sie den APT-Cache mit dem folgenden Befehl:

sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main'
sudo apt-get update - y

Sobald das Repository aktualisiert ist, installieren Sie MariaDB mit dem folgenden Befehl:

sudo apt-get install mariadb-server rsync -y

Der obige Befehl installiert MariaDB mit Galera und mehreren Abhängigkeiten. Die Galera-Teile bleiben inaktiv, bis sie konfiguriert werden, wie ein Plugin oder eine Speicher-Engine. Sobald MariaDB auf allen Knoten installiert ist, können Sie mit der Sicherung von MariaDB fortfahren.

Standardmäßig ist die MariaDB-Installation nicht gesichert, daher müssen Sie die MariaDB-Installation sichern. Sie können dies tun, indem Sie das Skript mysql_secure_installation ausführen:

sudo mysql_secure_installation

In diesem Prozess werden Sie aufgefordert, das Root-Passwort festzulegen, anonyme Benutzer zu entfernen, die Root-Anmeldung aus der Ferne zu verbieten und die Testdatenbank zu entfernen. Beantworten Sie alle Fragen wie unten gezeigt:

Aktuelles Passwort für Root eingeben (Eingabe für keins):Root-Passwort ändern? [J/n] n Anonyme Benutzer entfernen? [J/n] YRoot-Anmeldung aus der Ferne verbieten? [J/n] YTestdatenbank und Zugriff darauf entfernen? [J/n] YBerechtigungstabellen jetzt neu laden? [J/n] Ja

Sobald die MariaDB auf allen Knoten gesichert ist, können Sie mit dem nächsten Schritt fortfahren.

MariaDB-Cluster auf Node1 einrichten

Gehen Sie zuerst zu Node1 und erstellen Sie eine Konfigurationsdatei für Galera. Standardmäßig liest MariaDB die Konfiguration aus dem Verzeichnis /etc/mysql/conf.d/. Führen Sie dazu den folgenden Befehl aus:

sudo nano /etc/mysql/conf.d/galera.cnf

Fügen Sie die folgenden Zeilen hinzu:

[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Galera-Provider-Konfigurationwsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Galera-Cluster-Konfigurationwsrep_cluster_name="galera_cluster"wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"# Galera-Synchronisierungskonfigurationwsrep_sst_method=rsync# Galera-Knotenkonfigurationwsrep_node_address="192.168.0.102"wsrep_node_name="Node1"

Speichern Sie die Datei, wenn Sie fertig sind.

Hinweis: 192.168.0.102 ist die IP-Adresse von Node1

Knoten2 auf Galera-Cluster hinzufügen

Als nächstes gehen Sie zu Node2 und erstellen eine Konfigurationsdatei für Galera:

sudo nano /etc/mysql/conf.d/galera.cnf

Fügen Sie die folgenden Zeilen hinzu:

[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Galera-Provider-Konfigurationwsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Galera-Cluster-Konfigurationwsrep_cluster_name="galera_cluster"wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"# Galera-Synchronisierungskonfigurationwsrep_sst_method=rsync# Galera-Knotenkonfigurationwsrep_node_address="192.168.0.103"wsrep_node_name="Node2"

Speichern Sie die Datei, wenn Sie fertig sind.

Hinweis: 192.168.0.103 ist die IP-Adresse von Node2.

Knoten3 auf Galera-Cluster hinzufügen

Als nächstes gehen Sie zu Node3 und erstellen eine Konfigurationsdatei für Galera:

sudo nano /etc/mysql/conf.d/galera.cnf

Fügen Sie die folgenden Zeilen hinzu:

[mysqld]binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2bind-address=0.0.0.0# Galera-Provider-Konfigurationwsrep_on=ONwsrep_provider=/usr/lib/galera/libgalera_smm.so# Galera-Cluster-Konfigurationwsrep_cluster_name="galera_cluster"wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"# Galera-Synchronisierungskonfigurationwsrep_sst_method=rsync# Galera-Knotenkonfigurationwsrep_node_address="192.168.0.104"wsrep_node_name="Node3"

Speichern Sie die Datei, wenn Sie fertig sind.

Hinweis: 192.168.0.104 ist die IP-Adresse von Node3.

Firewall konfigurieren

Galera Cluster verwendet vier Ports 3306 für die MySQL-Client-Verbindung, 4444 für State Snapshot Transfer, 4567 für Galera Cluster-Replikationsdatenverkehr und 4568 für Incremental State Transfer. Sie müssen also alle diese Ports über die UFW-Firewall zulassen. Sie können dies tun, indem Sie den folgenden Befehl auf allen Knoten ausführen:

Aktivieren Sie zunächst die UFW-Firewall mit dem folgenden Befehl:

sudo ufw enable

Lassen Sie als Nächstes alle Ports mit dem folgenden Befehl zu:

sudo ufw zulassen 3306/tcp
sudo ufw zulassen 4444/tcp
sudo ufw zulassen 4567/tcp
sudo ufw zulassen 4568/tcp
sudo ufw zulassen 4567/udp

Anschließend können Sie den Status der Firewall mit folgendem Befehl prüfen:

sudo ufw-Status

Sobald die UFW-Firewall auf allen Knoten konfiguriert ist, können Sie mit dem nächsten Schritt fortfahren.

MariaDB Galera Cluster starten

Nachdem Sie alle Knoten erfolgreich konfiguriert haben, gehen Sie zu Node1 und starten Sie Galera Cluster.

Bevor Galera starten kann, müssen Sie sicherstellen, dass der MariaDB-Dienst auf allen Knoten gestoppt ist.

Führen Sie den folgenden Befehl auf allen Knoten aus:

sudo systemctl stop mysql

Starten Sie nun den Galera Cluster auf Node1 mit folgendem Befehl:

sudo galera_new_cluster

Überprüfen Sie nun mit dem folgenden Befehl, ob der Cluster ausgeführt wird oder nicht:

mysql -u root -p -e "Status anzeigen wie 'wsrep_cluster_size'"

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe sehen:

+--------------------+-------+| Variablenname | Wert |+--------------------+-------+| wsrep_cluster_size | 1 |+--------------------+-------+

Starten Sie auf Node2 den MariaDB-Dienst:

sudo systemctl mysql starten

Sie können den Status des MariaDB-Dienstes mit dem folgenden Befehl überprüfen, ob er funktioniert oder nicht:

sudo systemctl status mysql

Wenn alles in Ordnung ist, sollten Sie die folgende Ausgabe sehen:

?? mariadb.service – MariaDB-Datenbankserver Geladen:geladen (/lib/systemd/system/mariadb.service; aktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit So. 2017-09-17 10:11:20 EDT; Vor 10 Minuten Prozess:715 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=beendet, status=0/SUCCESS) Prozess:713 ExecStartPost=/etc/mysql/debian-start (code=beendet, status=0 /SUCCESS) Prozess:545 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] &&VAR=|| VAR=`/usr/bin/galera_recovery`; [$? -eq 0 ] &&systemctl set Process:535 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process:514 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Haupt-PID:661 (mysqld) Status:"Nehmen Sie jetzt Ihre SQL-Anfragen entgegen..." Aufgaben:26 (Grenze:4915) CGroup:/system.slice/mariadb.service ??????661 /usr/sbin/mysqldSep 17 10:11:11 debian systemd[1]:Starting MariaDB database server...Sep 17 10:11:15 debian mysqld[661]:2017-09-17 10:11:15 140287134630464 [Anmerkung] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) beginnend als processSep 17 10:11:20 debian systemd[1 ]:MariaDB-Datenbankserver gestartet.

Jetzt sollte Ihr zweiter Knoten automatisch mit dem Cluster verbunden sein. Sie können dies mit dem folgenden Befehl überprüfen:

mysql -u root -p -e "Status anzeigen wie 'wsrep_cluster_size'"

Wenn alles gut funktioniert, sollte die Clustergröße auf zwei gesetzt werden:

+--------------------+-------+| Variablenname | Wert |+--------------------+-------+| wsrep_cluster_size | 2 |+--------------------+-------+

Starten Sie auf Node3 den MariaDB-Dienst:

sudo systemctl start mysql
mysql -u root -p -e "Status anzeigen wie 'wsrep_cluster_size'"

Wenn alles gut funktioniert, sollte die Clustergröße auf drei gesetzt werden:

+--------------------+-------+| Variablenname | Wert |+--------------------+-------+| wsrep_cluster_size | 3 |+--------------------+-------+

Ihr Cluster funktioniert jetzt und kommuniziert miteinander.

Datenbankreplikation testen

Jetzt, da alle Knoten online sind, ist es an der Zeit, die Datenbankreplikation im Galera-Cluster zu testen. Beginnen wir damit, eine Datenbank auf Knoten1 zu erstellen und zu prüfen, ob sie auf allen Knoten repliziert wird.

Melden Sie sich zuerst mit dem folgenden Befehl bei der MariaDb-Konsole an:

mysql -u root -p

Geben Sie Ihr Root-Passwort ein und erstellen Sie eine Datenbank mit dem Namen test_db:

MariaDB [(keine)]> Datenbank erstellen test_db;
MariaDB [(keine)]> Datenbanken anzeigen;
+--------------------+| Datenbank |+--------------------+| test_db |+--------------------+

Gehen Sie nun zu Node2 und Node3 und prüfen Sie, ob die Replikation funktioniert oder nicht:

mysql -u root -p
MariaDB [(keine)]> Datenbanken anzeigen;
+--------------------+| Datenbank |+--------------------+| test_db |+--------------------+

Herzliche Glückwünsche! Sie haben MariaDB Galera Cluster erfolgreich auf dem Ubuntu 16.04-Server installiert und konfiguriert.

Schlussfolgerung

Ich hoffe, Sie haben jetzt genug Wissen, um MariaDB Galera Cluster auf Ubuntu 16.04 zu installieren und zu konfigurieren. Sie können jetzt problemlos auf mehrere oder sogar Dutzende verschiedener Knoten skalieren. Wenn Sie Zweifel oder weitere Fragen haben, finden Sie unter dem Link Galera Cluster Doc

weitere Informationen
Ubuntu
  1. So installieren Sie MariaDB 10.4 auf Ubuntu 18.04

  2. So installieren Sie MariaDB unter Ubuntu 18.04

  3. So richten Sie den MariaDB Galera-Cluster unter Ubuntu 20.04 ein

  4. So installieren Sie LiteCart unter Ubuntu 15.04

  5. So installieren und konfigurieren Sie den MariaDB Galera-Cluster unter Ubuntu 18.04

So installieren Sie PHPList unter Ubuntu 15.04

So installieren Sie ImpressCMS unter Ubuntu 15.04

So installieren Sie Nextcloud unter Ubuntu 16.04

So installieren Sie Mahara unter Ubuntu 16.04

So installieren Sie MariaDB unter Ubuntu 16.04

So installieren Sie MariaDB auf Ubuntu