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:
-
Drei Ubuntu 18.04-Tröpfchen mit aktiviertenprivate networking
-
Ein Benutzer ohne Rootberechtigung mit Sudo-Berechtigungen, der für jedes Droplet konfiguriert ist. Wie das geht, erfahren Sie inInitial Server Setup with Ubuntu 18.04.
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ürhostname
durch 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_mgmd
finden 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_mgmd
ausfü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_mgmd
jetzt 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 vonufw
nicht 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 vonndbd
und 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.deb
aus 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 vonufw
nicht 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ämonndbd
jetzt 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.tar
herunter (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.cnf
gespeichert.
Ö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 OptionENGINE
angeben. 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.