So erstellen Sie einen MySQL-Cluster mit mehreren Knoten unter Ubuntu 18.04

Einführung

Die verteilte MySQL Cluster-Datenbank bietet Hochverfügbarkeit und Durchsatz für Ihr MySQL-Datenbankverwaltungssystem. Ein MySQL-Cluster besteht aus einem oder mehreren Verwaltungsknoten (ndb_mgmd), die die Konfiguration des Clusters speichern und die Datenknoten (ndbd) steuern, auf denen Clusterdaten gespeichert sind. Nach der Kommunikation mit dem Verwaltungsknoten stellen Clients (MySQL-Clients, Server oder native APIs) eine direkte Verbindung zu diesen Datenknoten her.

Bei MySQL Cluster erfolgt normalerweise keine Replikation von Daten, sondern eine Datenknotensynchronisation. Zu diesem Zweck muss eine spezielle Daten-Engine verwendet werden - NDBCluster (NDB). Es ist hilfreich, sich den Cluster als eine einzige logische MySQL-Umgebung mit redundanten Komponenten vorzustellen. Somit kann ein MySQL-Cluster an der Replikation mit anderen MySQL-Clustern teilnehmen.

MySQL Cluster funktioniert am besten in einer Umgebung ohne gemeinsame Nutzung. Im Idealfall sollten sich keine zwei Komponenten die gleiche Hardware teilen. Der Einfachheit halber und zu Demonstrationszwecken beschränken wir uns auf die Verwendung von nur drei Servern. Wir werden zwei Server als Datenknoten einrichten, die Daten untereinander synchronisieren. Der dritte Server wird sowohl für den Cluster-Manager als auch für den MySQL-Server / -Client verwendet. Wenn Sie zusätzliche Server hochfahren, können Sie dem Cluster weitere Datenknoten hinzufügen, den Cluster-Manager vom MySQL-Server / -Client entkoppeln und weitere Server als Cluster-Manager und MySQL-Server / -Clients konfigurieren.

Voraussetzungen

Um dieses Lernprogramm abzuschließen, benötigen Sie insgesamt drei Server: zwei Server für die redundanten MySQL-Datenknoten (ndbd) und einen Server für den Cluster-Manager (ndb_mgmd) und den MySQL-Server / Client ( mysqld undmysql).

Erstellen Sie insame DigitalOcean data center die folgenden Tröpfchen mitprivate networking enabled:

Notieren Sie sich unbedingt die IP-Adressen vonprivateIhrer drei Droplets. In diesem Tutorial haben unsere Clusterknoten die folgenden privaten IP-Adressen:

  • 198.51.100.0 ist der erste MySQL Cluster-Datenknoten

  • 198.51.100.1 ist der zweite Datenknoten

  • 198.51.100.2 ist der Cluster Manager & MySQL Serverknoten

Nachdem Sie Ihre Droplets gestartet, einen Benutzer ohne Rootberechtigung konfiguriert und die IP-Adressen für die drei Knoten notiert haben, können Sie mit diesem Lernprogramm beginnen.

[[Schritt-1 - Installieren und Konfigurieren des Cluster-Managers]] == Schritt 1 - Installieren und Konfigurieren des Cluster-Managers

Zunächst laden wir den MySQL Cluster Managerndb_mgmd herunter und installieren ihn.

Um den Cluster Manager zu installieren, müssen wir zuerst die entsprechende.deb-Installationsdatei aus dem offiziellen MySQL Clusterdownload page abrufen.

Wählen Sie auf dieser Seite unterSelect Operating SystemUbuntu Linux aus. Wählen Sie dann unterSelect OS VersionUbuntu Linux 18.04 (x86, 64-bit).

Scrollen Sie nach unten, bis SieDEB Package, NDB Management Server sehen, und klicken Sie auf den LinkDownload für denjenigen, dernotdbgsym enthält (es sei denn, Sie benötigen Debug-Symbole). Sie werden zu einerBegin Your Download-Seite weitergeleitet. Klicken Sie hier mit der rechten Maustaste aufNo thanks, just start my download. und kopieren Sie den Link in die Datei.deb.

Melden Sie sich jetzt bei Ihrem Cluster Manager-Droplet an (in diesem Lernprogramm198.51.100.2) und laden Sie diese.deb-Datei herunter:

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster-community-management-server_7.6.6-1ubuntu18.04_amd64.deb

Installieren Siendb_mgmd mitdpkg:

sudo dpkg -i mysql-cluster-community-management-server_7.6.6-1ubuntu18.04_amd64.deb

Wir müssen jetztndb_mgmd konfigurieren, bevor wir es zum ersten Mal ausführen. Durch die richtige Konfiguration wird eine korrekte Synchronisation und Lastverteilung zwischen den Datenknoten sichergestellt.

Der Cluster-Manager sollte die erste Komponente sein, die in einem MySQL-Cluster gestartet wird. Es erfordert eine Konfigurationsdatei, die als Argument an die ausführbare Datei übergeben wird. Wir erstellen und verwenden die folgende Konfigurationsdatei:/var/lib/mysql-cluster/config.ini.

Erstellen Sie im Cluster Manager-Droplet das Verzeichnis/var/lib/mysql-cluster, in dem sich diese Datei befindet:

sudo mkdir /var/lib/mysql-cluster

Dann erstellen und bearbeiten Sie die Konfigurationsdatei mit Ihrem bevorzugten Texteditor:

sudo nano /var/lib/mysql-cluster/config.ini

Fügen Sie den folgenden Text in Ihren Editor ein:

/var/lib/mysql-cluster/config.ini

[ndbd default]
# Options affecting ndbd processes on all data nodes:
NoOfReplicas=2  # Number of replicas

[ndb_mgmd]
# Management process options:
hostname=198.51.100.2 # Hostname of the manager
datadir=/var/lib/mysql-cluster  # Directory for the log files

[ndbd]
hostname=198.51.100.0 # Hostname/IP of the first data node
NodeId=2            # Node ID for this data node
datadir=/usr/local/mysql/data   # Remote directory for the data files

[ndbd]
hostname=198.51.100.1 # Hostname/IP of the second data node
NodeId=3            # Node ID for this data node
datadir=/usr/local/mysql/data   # Remote directory for the data files

[mysqld]
# SQL node options:
hostname=198.51.100.2 # In our case the MySQL server/client is on the same Droplet as the cluster manager

Stellen Sie nach dem Einfügen dieses Textes sicher, dass Sie die obigen Werte fürhostnamedurch die korrekten IP-Adressen der von Ihnen konfigurierten Droplets ersetzen. Das Festlegen dieseshostname-Parameters ist eine wichtige Sicherheitsmaßnahme, die verhindert, dass andere Server eine Verbindung zum Cluster-Manager herstellen.

Speichern Sie die Datei und schließen Sie Ihren Texteditor.

Dies ist eine reduzierte, minimale Konfigurationsdatei für einen MySQL-Cluster. Sie sollten die Parameter in dieser Datei an Ihre Produktionsanforderungen anpassen. Ein Beispiel für die vollständig konfigurierte Konfigurationsdatei vonndb_mgmdfinden Sie im MySQL Clusterdocumentation.

In der obigen Datei können Sie zusätzliche Komponenten wie Datenknoten (ndbd) oder MySQL-Serverknoten (mysqld) hinzufügen, indem Sie Instanzen an den entsprechenden Abschnitt anhängen.

Wir können den Manager jetzt starten, indem wir die Binärdateindb_mgmdausführen und ihre Konfigurationsdatei mit dem Flag-f angeben:

sudo ndb_mgmd -f /var/lib/mysql-cluster/config.ini

Sie sollten die folgende Ausgabe sehen:

OutputMySQL Cluster Management Server mysql-5.7.22 ndb-7.6.6
2018-07-25 21:48:39 [MgmtSrvr] INFO     -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it...
2018-07-25 21:48:39 [MgmtSrvr] INFO     -- Successfully created config directory

Dies zeigt an, dass der MySQL Cluster Management-Server erfolgreich installiert wurde und jetzt auf Ihrem Droplet ausgeführt wird.

Im Idealfall möchten wir den Cluster-Verwaltungsserver automatisch beim Booten starten. Zu diesem Zweck erstellen und aktivieren wir einen systemd-Dienst.

Bevor wir den Dienst erstellen, müssen wir den laufenden Server beenden:

sudo pkill -f ndb_mgmd

Öffnen und bearbeiten Sie nun die folgende systemd Unit-Datei mit Ihrem bevorzugten Editor:

sudo nano /etc/systemd/system/ndb_mgmd.service

Fügen Sie den folgenden Code ein:

/etc/systemd/system/ndb_mgmd.service

[Unit]
Description=MySQL NDB Cluster Management Server
After=network.target auditd.service

[Service]
Type=forking
ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

Hier haben wir eine minimale Anzahl von Optionen hinzugefügt, die systemd anweisen, wie derndb_mgmd-Prozess gestartet, gestoppt und neu gestartet werden soll. Weitere Informationen zu den in dieser Gerätekonfiguration verwendeten Optionen finden Sie unter systemdmanual.

Speichern und schließen Sie die Datei.

Laden Sie nun die Manager-Konfiguration von systemd mitdaemon-reload neu:

sudo systemctl daemon-reload

Wir werden den soeben erstellten Dienst aktivieren, damit der MySQL Cluster Manager beim Neustart gestartet wird:

sudo systemctl enable ndb_mgmd

Zum Schluss starten wir den Service:

sudo systemctl start ndb_mgmd

Sie können überprüfen, ob der NDB Cluster Management-Dienst ausgeführt wird:

sudo systemctl status ndb_mgmd

Sie sollten die folgende Ausgabe sehen:

● ndb_mgmd.service - MySQL NDB Cluster Management Server
   Loaded: loaded (/etc/systemd/system/ndb_mgmd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-07-26 21:23:37 UTC; 3s ago
  Process: 11184 ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini (code=exited, status=0/SUCCESS)
 Main PID: 11193 (ndb_mgmd)
    Tasks: 11 (limit: 4915)
   CGroup: /system.slice/ndb_mgmd.service
           └─11193 /usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

Dies zeigt an, dass der MySQL Cluster Management-Server vonndb_mgmdjetzt als systemd-Dienst ausgeführt wird.

Der letzte Schritt zum Einrichten des Cluster-Managers besteht darin, eingehende Verbindungen von anderen MySQL Cluster-Knoten in unserem privaten Netzwerk zuzulassen.

Wenn Sie beim Einrichten dieses Droplets die Firewall vonufwnicht konfiguriert haben, können Sie mit dem nächsten Abschnitt fortfahren.

Wir werden Regeln hinzufügen, um lokal eingehende Verbindungen von beiden Datenknoten zuzulassen:

sudo ufw allow from 198.51.100.0
sudo ufw allow from 198.51.100.1

Nach der Eingabe dieser Befehle sollte die folgende Ausgabe angezeigt werden:

OutputRule added

Der Cluster-Manager sollte jetzt betriebsbereit sein und mit anderen Cluster-Knoten über das private Netzwerk kommunizieren können.

[[Schritt 2 - Installieren und Konfigurieren der Datenknoten]] == Schritt 2 - Installieren und Konfigurieren der Datenknoten

[.note] #Note: Alle Befehle in diesem Abschnitt sollten auf beiden Datenknoten ausgeführt werden.
#

In diesem Schritt installieren wir den MySQL Cluster-Datenknotendämon vonndbdund konfigurieren die Knoten so, dass sie mit dem Cluster-Manager kommunizieren können.

Um die Datenknoten-Binärdateien zu installieren, müssen wir zuerst die entsprechende Installationsdatei für.debaus den offiziellen MySQLdownload page abrufen.

Wählen Sie auf dieser Seite unterSelect Operating SystemUbuntu Linux aus. Wählen Sie dann unterSelect OS VersionUbuntu Linux 18.04 (x86, 64-bit).

Scrollen Sie nach unten, bis SieDEB Package, NDB Data Node Binaries sehen, und klicken Sie auf den LinkDownload für denjenigen, dernotdbgsym enthält (es sei denn, Sie benötigen Debug-Symbole). Sie werden zu einerBegin Your Download-Seite weitergeleitet. Klicken Sie hier mit der rechten Maustaste aufNo thanks, just start my download. und kopieren Sie den Link in die Datei.deb.

Melden Sie sich jetzt bei Ihrem ersten Datenknoten Droplet an (in diesem Tutorial198.51.100.0) und laden Sie diese.deb-Datei herunter:

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster-community-data-node_7.6.6-1ubuntu18.04_amd64.deb

Bevor wir die Datenknoten-Binärdatei installieren, müssen wir eine Abhängigkeitlibclass-methodmaker-perl installieren:

sudo apt update
sudo apt install libclass-methodmaker-perl

Wir können jetzt die Datennotizen-Binärdatei mitdpkg installieren:

sudo dpkg -i mysql-cluster-community-data-node_7.6.6-1ubuntu18.04_amd64.deb

Die Datenknoten beziehen ihre Konfiguration vom Standardspeicherort von MySQL,/etc/my.cnf. Erstellen Sie diese Datei mit Ihrem bevorzugten Texteditor und bearbeiten Sie sie:

sudo nano /etc/my.cnf

Fügen Sie der Datei den folgenden Konfigurationsparameter hinzu:

/etc/my.cnf

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.2  # location of cluster manager

Die Angabe des Speicherorts des Cluster Manager-Knotens ist die einzige Konfiguration, die zum Starten vonndbd erforderlich ist. Der Rest der Konfiguration wird direkt vom Manager abgerufen.

Speichern und schließen Sie die Datei.

In unserem Beispiel stellt der Datenknoten fest, dass sein Datenverzeichnis gemäß der Konfiguration des Managers/usr/local/mysql/data beträgt. Vor dem Starten des Daemons erstellen wir dieses Verzeichnis auf dem Knoten:

sudo mkdir -p /usr/local/mysql/data

Jetzt können wir den Datenknoten mit dem folgenden Befehl starten:

sudo ndbd

Sie sollten die folgende Ausgabe sehen:

Output2018-07-18 19:48:21 [ndbd] INFO     -- Angel connected to '198.51.100.2:1186'
2018-07-18 19:48:21 [ndbd] INFO     -- Angel allocated nodeid: 2

Der NDB-Datenknotendämon wurde erfolgreich installiert und wird jetzt auf Ihrem Server ausgeführt.

Wir müssen auch eingehende Verbindungen von anderen MySQL Cluster-Knoten über das private Netzwerk zulassen.

Wenn Sie beim Einrichten dieses Droplets die Firewall vonufwnicht konfiguriert haben, können Sie mit dem Einrichten des systemd-Dienstes fürndbd fortfahren.

Wir fügen Regeln hinzu, um eingehende Verbindungen vom Cluster-Manager und anderen Datenknoten zuzulassen:

sudo ufw allow from 198.51.100.0
sudo ufw allow from 198.51.100.2

Nach der Eingabe dieser Befehle sollte die folgende Ausgabe angezeigt werden:

OutputRule added

Ihr MySQL-Datenknoten-Droplet kann jetzt sowohl mit dem Cluster-Manager als auch mit anderen Datenknoten über das private Netzwerk kommunizieren.

Abschließend möchten wir, dass der Datenknotendämon automatisch gestartet wird, wenn der Server startet. Wir folgen dem gleichen Verfahren wie für den Cluster-Manager und erstellen einen systemd-Dienst.

Bevor wir den Service erstellen, beenden wir den laufenden Prozess vonndbd:

sudo pkill -f ndbd

Öffnen und bearbeiten Sie nun die folgende systemd Unit-Datei mit Ihrem bevorzugten Editor:

sudo nano /etc/systemd/system/ndbd.service

Fügen Sie den folgenden Code ein:

/etc/systemd/system/ndbd.service

[Unit]
Description=MySQL NDB Data Node Daemon
After=network.target auditd.service

[Service]
Type=forking
ExecStart=/usr/sbin/ndbd
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

Hier haben wir eine minimale Anzahl von Optionen hinzugefügt, die systemd anweisen, wie derndbd-Prozess gestartet, gestoppt und neu gestartet werden soll. Weitere Informationen zu den in dieser Gerätekonfiguration verwendeten Optionen finden Sie unter systemdmanual.

Speichern und schließen Sie die Datei.

Laden Sie nun die Manager-Konfiguration von systemd mitdaemon-reload neu:

sudo systemctl daemon-reload

Wir werden jetzt den soeben erstellten Dienst aktivieren, damit der Datenknotendämon beim Neustart gestartet wird:

sudo systemctl enable ndbd

Zum Schluss starten wir den Service:

sudo systemctl start ndbd

Sie können überprüfen, ob der NDB Cluster Management-Dienst ausgeführt wird:

sudo systemctl status ndbd

Sie sollten die folgende Ausgabe sehen:

Output● ndbd.service - MySQL NDB Data Node Daemon
   Loaded: loaded (/etc/systemd/system/ndbd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-07-26 20:56:29 UTC; 8s ago
  Process: 11972 ExecStart=/usr/sbin/ndbd (code=exited, status=0/SUCCESS)
 Main PID: 11984 (ndbd)
    Tasks: 46 (limit: 4915)
   CGroup: /system.slice/ndbd.service
           ├─11984 /usr/sbin/ndbd
           └─11987 /usr/sbin/ndbd

Dies zeigt an, dass der MySQL Cluster-Datenknotendämonndbdjetzt als systemd-Dienst ausgeführt wird. Ihr Datenknoten sollte jetzt voll funktionsfähig sein und eine Verbindung zum MySQL Cluster Manager herstellen können.

Wenn Sie den ersten Datenknoten eingerichtet haben, wiederholen Sie die Schritte in diesem Abschnitt auf dem anderen Datenknoten (198.51.100.1 in diesem Lernprogramm).

[[Schritt 3 - Konfigurieren und Starten des MySQL-Servers und -Clients]] == Schritt 3 - Konfigurieren und Starten des MySQL-Servers und -Clients

Ein Standard-MySQL-Server wie der im APT-Repository von Ubuntu verfügbare unterstützt die MySQL Cluster Engine NDB nicht. Dies bedeutet, dass wir den benutzerdefinierten SQL-Server installieren müssen, der mit der anderen MySQL Cluster-Software gepackt ist, die wir in diesem Lernprogramm installiert haben.

Wir werden noch einmal die MySQL Cluster Server-Binärdatei aus den offiziellen MySQL Clusterdownload page holen.

Wählen Sie auf dieser Seite unterSelect Operating SystemUbuntu Linux aus. Wählen Sie dann unterSelect OS VersionUbuntu Linux 18.04 (x86, 64-bit).

Scrollen Sie nach unten, bis SieDEB Bundle sehen, und klicken Sie auf den LinkDownload (es sollte der erste in der Liste sein). Sie werden zu einerBegin Your Download-Seite weitergeleitet. Klicken Sie hier mit der rechten Maustaste aufNo thanks, just start my download. und kopieren Sie den Link in das Archiv von.tar.

Melden Sie sich jetzt beim Cluster Manager-Droplet an (in diesem Lernprogramm198.51.100.2) und laden Sie das Archiv dieses.tarherunter (denken Sie daran, dass wir MySQL Server auf demselben Knoten wie unser Cluster Manager installieren - in einer Produktion Einstellung Sie sollten diese Daemons auf verschiedenen Knoten ausführen):

cd ~
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster_7.6.6-1ubuntu18.04_amd64.deb-bundle.tar

Wir extrahieren dieses Archiv jetzt in ein Verzeichnis mit dem Nameninstall. Erstellen Sie zuerst das Verzeichnis:

mkdir install

Extrahieren Sie nun das Archiv in dieses Verzeichnis:

tar -xvf mysql-cluster_7.6.6-1ubuntu18.04_amd64.deb-bundle.tar -C install/

Verschieben Sie in dieses Verzeichnis, das die extrahierten MySQL Cluster-Komponenten-Binärdateien enthält:

cd install

Bevor wir die MySQL-Server-Binärdatei installieren, müssen wir einige Abhängigkeiten installieren:

sudo apt update
sudo apt install libaio1 libmecab2

Jetzt müssen wir die MySQL Cluster-Abhängigkeiten installieren, die im soeben extrahiertentar-Archiv gebündelt sind:

sudo dpkg -i mysql-common_7.6.6-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-cluster-community-client_7.6.6-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-client_7.6.6-1ubuntu18.04_amd64.deb
sudo dpkg -i mysql-cluster-community-server_7.6.6-1ubuntu18.04_amd64.deb

Bei der Installation vonmysql-cluster-community-server sollte eine Konfigurationsaufforderung angezeigt werden, in der Sie aufgefordert werden, ein Kennwort für das KontorootIhrer MySQL-Datenbank festzulegen. Wählen Sie ein sicheres Passwort und drücken Sie<Ok>. Geben Sie diesesroot-Kennwort erneut ein, wenn Sie dazu aufgefordert werden, und drücken Sie erneut<Ok>, um die Installation abzuschließen.

Wir können jetzt die MySQL-Server-Binärdatei mitdpkg installieren:

sudo dpkg -i mysql-server_7.6.6-1ubuntu18.04_amd64.deb

Jetzt müssen wir diese MySQL-Server-Installation konfigurieren.

Die Konfiguration für MySQL Server wird in der Standarddatei/etc/mysql/my.cnfgespeichert.

Öffnen Sie diese Konfigurationsdatei mit Ihrem bevorzugten Editor:

sudo nano /etc/mysql/my.cnf

Sie sollten den folgenden Text sehen:

/etc/mysql/my.cnf

# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA

#
# The MySQL Cluster Community Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

Fügen Sie die folgende Konfiguration hinzu:

/etc/mysql/my.cnf

. . .
[mysqld]
# Options for mysqld process:
ndbcluster                      # run NDB storage engine

[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=198.51.100.2  # location of management server

Speichern und schließen Sie die Datei.

Starten Sie den MySQL-Server neu, damit die folgenden Änderungen wirksam werden:

sudo systemctl restart mysql

MySQL sollte standardmäßig automatisch gestartet werden, wenn der Server neu gestartet wird. Wenn dies nicht der Fall ist, sollte der folgende Befehl dies beheben:

sudo systemctl enable mysql

Auf Ihrem Cluster Manager / MySQL Server Droplet sollte jetzt ein SQL Server laufen.

Im nächsten Schritt führen wir einige Befehle aus, um zu überprüfen, ob unsere MySQL Cluster-Installation wie erwartet funktioniert.

[[Schritt 4 - Überprüfung der MySQL-Cluster-Installation]] == Schritt 4 - Überprüfung der MySQL Cluster-Installation

Melden Sie sich bei Ihrem Cluster Manager / SQL Server-Knoten an, um Ihre MySQL Cluster-Installation zu überprüfen.

Wir öffnen den MySQL-Client über die Befehlszeile und stellen durch Eingabe des folgenden Befehls eine Verbindung zum Konto vonroother, das wir gerade konfiguriert haben:

mysql -u root -p

Geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden, und drücken SieENTER.

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

OutputWelcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.22-ndb-7.6.6 MySQL Cluster Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Führen Sie im MySQL-Client den folgenden Befehl aus:

SHOW ENGINE NDB STATUS \G

Sie sollten nun Informationen zur NDB-Cluster-Engine sehen, beginnend mit den Verbindungsparametern:

Output
*************************** 1. row ***************************
  Type: ndbcluster
  Name: connection
Status: cluster_node_id=4, connected_host=198.51.100.2, connected_port=1186, number_of_data_nodes=2, number_of_ready_data_nodes=2, connect_count=0
. . .

Dies zeigt an, dass Sie erfolgreich mit Ihrem MySQL-Cluster verbunden sind.

Beachten Sie hier die Anzahl vonready_data_nodes: 2. Durch diese Redundanz kann Ihr MySQL-Cluster auch dann weiterarbeiten, wenn einer der Datenknoten ausfällt. Dies bedeutet auch, dass Ihre SQL-Abfragen auf die beiden Datenknoten verteilt werden.

Sie können versuchen, einen der Datenknoten herunterzufahren, um die Clusterstabilität zu testen. Der einfachste Test wäre, das Datenknoten-Droplet neu zu starten, um den Wiederherstellungsprozess vollständig zu testen. Sie sollten sehen, dass sich der Wert vonnumber_of_ready_data_nodes in1 ändert und wieder auf2 zurückgesetzt wird, wenn der Knoten neu startet und erneut eine Verbindung zum Cluster-Manager herstellt.

Um die MySQL-Eingabeaufforderung zu beenden, geben Sie einfachquit ein oder drücken SieCTRL-D.

Dies ist der erste Test, der anzeigt, dass der MySQL-Cluster, der Server und der Client funktionieren. Wir werden jetzt einen zusätzlichen Test durchführen, um zu bestätigen, dass der Cluster ordnungsgemäß funktioniert.

Öffnen Sie die Cluster-Verwaltungskonsolendb_mgm mit dem folgenden Befehl:

ndb_mgm

Sie sollten die folgende Ausgabe sehen:

Output-- NDB Cluster -- Management Client --
ndb_mgm>

Sobald Sie sich in der Konsole befinden, geben Sie den BefehlSHOW ein und drücken SieENTER:

SHOW

Sie sollten die folgende Ausgabe sehen:

OutputConnected to Management Server at: 198.51.100.2:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2    @198.51.100.0  (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0, *)
id=3    @198.51.100.1  (mysql-5.7.22 ndb-7.6.6, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @198.51.100.2  (mysql-5.7.22 ndb-7.6.6)

[mysqld(API)]   1 node(s)
id=4    @198.51.100.2  (mysql-5.7.22 ndb-7.6.6)

Das Obige zeigt, dass zwei Datenknoten mitnode-id+`s 2 and 3. There is also one management node with `+node-id 1 und ein MySQL-Server mitnode-id 4 verbunden sind. Sie können weitere Informationen zu jeder ID anzeigen, indem Sie ihre Nummer mit dem BefehlSTATUS wie folgt eingeben:

2 STATUS

Der obige Befehl zeigt Ihnen den Status, die MySQL-Version und die NDB-Version von Knoten 2:

OutputNode 2: started (mysql-5.7.22 ndb-7.6.6)

Um die Verwaltungskonsole zu verlassen, geben Siequit ein und drücken Sie dannENTER.

Die Verwaltungskonsole ist sehr leistungsfähig und bietet Ihnen viele andere Optionen für die Verwaltung des Clusters und seiner Daten, einschließlich der Erstellung eines Online-Backups. Weitere Informationen finden Sie inofficial MySQL documentation.

Zu diesem Zeitpunkt haben Sie Ihre MySQL Cluster-Installation vollständig getestet. Der abschließende Schritt dieses Handbuchs zeigt, wie Sie Testdaten erstellen und in diesen MySQL-Cluster einfügen.

[[Schritt 5 - Einfügen von Daten in einen MySQL-Cluster] == Schritt 5 - Einfügen von Daten in einen MySQL-Cluster

Um die Funktionalität des Clusters zu demonstrieren, erstellen wir eine neue Tabelle mit der NDB-Engine und fügen einige Beispieldaten ein. Beachten Sie, dass zur Verwendung der Clusterfunktionalität die Engine explizit alsNDB angegeben werden muss. Wenn Sie InnoDB (Standard) oder eine andere Engine verwenden, wird der Cluster nicht verwendet.

Erstellen wir zunächst eine Datenbank mit dem Namenclustertest mit dem folgenden Befehl:

CREATE DATABASE clustertest;

Wechseln Sie als Nächstes zur neuen Datenbank:

USE clustertest;

Erstellen Sie nun eine einfache Tabelle mit dem Namentest_table wie folgt:

CREATE TABLE test_table (name VARCHAR(20), value VARCHAR(20)) ENGINE=ndbcluster;

Wir haben die Enginendbcluster explizit angegeben, um den Cluster nutzen zu können.

Jetzt können wir mit der folgenden SQL-Abfrage beginnen, Daten einzufügen:

INSERT INTO test_table (name,value) VALUES('some_name','some_value');

Führen Sie die folgende Auswahlabfrage aus, um zu überprüfen, ob die Daten eingefügt wurden:

SELECT * FROM test_table;

Wenn Sie Daten in einendbcluster-Tabelle einfügen und Daten aus dieser auswählen, verteilt die Clusterlast die Abfragen zwischen allen verfügbaren Datenknoten. Dies verbessert die Stabilität und Leistung Ihrer MySQL-Datenbankinstallation.

Sie können die Standardspeicher-Engine in der zuvor bearbeitetenmy.cnf-Datei auch aufndbcluster setzen. In diesem Fall müssen Sie beim Erstellen von Tabellen nicht die OptionENGINEangeben. Weitere Informationen finden Sie in MySQLReference Manual.

Fazit

In diesem Tutorial haben wir gezeigt, wie Sie einen MySQL-Cluster auf Ubuntu 18.04-Servern einrichten und konfigurieren. Es ist wichtig zu beachten, dass dies eine minimale, reduzierte Architektur ist, die zur Veranschaulichung des Installationsvorgangs verwendet wird, und dass es viele erweiterte Optionen und Funktionen gibt, die Sie kennenlernen sollten, bevor Sie MySQL Cluster in der Produktion bereitstellen (z. B. Sicherungen durchführen). Weitere Informationen erhalten Sie in den offiziellenMySQL Cluster documentation.

Related