Gewusst wie: MariaDB Galera Cluster auf Ubuntu installieren 16.04

Gewusst wie: MariaDB Galera Cluster auf Ubuntu installieren 16.04

MariaDB Galera ist ein multi-master-Cluster für MariaDB. Seit MariaDB 10.1, die MariaDB und MariaDB Galera Server Pakete wurden kombiniert und Galera Pakete und deren Abhängigkeiten automatisch installiert bei der Installation von MariaDB. Aktuell, MariaDB Galera Cluster unterstützt nur die InnoDB / XtraDB Speicher-Engine. in MariaDB 10.0 und 5.5, Sie werden es separat herunterladen müssen. MariaDB Galera fügt Redundanz für eine Website Datenbank. In MariaDB Galera Cluster, mehrere Datenbankserver miteinander verbunden und halten synchronisiert.

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

  1. synchrone Replikation.
  2. Automatische Knotenverbindungs.
  3. Aktiv-Aktiv-Multi-Master-Topologie.
  4. Echte parallel Replikation, auf Zeilenebene.
  5. Lesen und Skalierbarkeit schreiben, Kleinere Client Latenzen.
  6. fehlgeschlagen Knoten, automatischer Abfall aus dem Cluster.

In diesem tutorial, wir werden erklären, wie MariaDB Galera Cluster einrichten 10.1 mit 3 Knoten läuft auf Ubuntu 16.04 Server. Wir werden auch die Datenbankreplikation zwischen allen Knoten testen.

Anforderungen

  • Drei Knoten mit Ubuntu 16.04 Server.
  • Node1 mit statischer IP-Adresse 192.168.0.102, Node2 mit statischer IP-Adresse 192.168.0.103 und Node3 mit statischer IP-Adresse 192.168.0.104 auf Ihrem Server konfigurieren.
  • Nicht-Root-Benutzer mit sudo-Berechtigungen Setup auf allen Knoten.

Erste Schritte

Erste, Sie müssen alle Knoten mit der neuesten Version aktualisieren. Sie können alle von ihnen mit dem folgenden Befehl aktualisieren:

Sudo apt-Get Update -y
Sudo apt-Get Upgrade -y

Nächste, starten Sie alle Knoten, diese Änderungen zu übernehmen. Dann, log mit sudo Benutzer und gehen Sie zum nächsten Schritt.

Installieren MariaDB Galera

MariaDB Server und MariaDB Galera Server-Pakete werden in der Version MariaDB kombiniert 10.1. In der Standardeinstellung, MariaDB 10.1 ist in den Standard-Ubuntu-Repositories nicht verfügbar, so müssen Sie die MariaDB Repository auf allen Knoten hinzufügen.

Erste, fügen Sie die MariaDB Repository Schlüssel mit dem folgenden Befehl ein:

Sudo apt-Key adv –RECV-Schlüssel –Keyserver Hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Nächste, das Repository hinzufügen und den APT-Cache mit dem folgenden Befehl aktualisieren:

sudo add-apt-repository ‚deb [arch = amd64, i386, ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial Haupt’
Sudo apt-Get Update -y

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

sudo apt-get MariaDB-Server rsync -y installieren

Der obige Befehl wird MariaDB mit Galera und mehrere Abhängigkeiten installieren. Die Galera Teile bleiben inaktiv, bis konfiguriert, wie ein Plugin oder Speicher-Engine. Sobald die MariaDB auf allen Knoten installiert, Sie können fortfahren MariaDB zu sichern.

Standardmäßig ist MariaDB Installation nicht gesichert., Also musst du MariaDB Installation sichern. Dies ist möglich, indem Sie die Mysql_secure_installation-Skript ausführen:

Sudo mysql_secure_installation

In diesem Prozess, Sie werden aufgefordert, das Root-Passwort festlegen, anonyme Benutzer entfernen, Deaktivieren Sie Root-Login aus der Ferne und entfernen Sie Test-Datenbank. Beantworten Sie die Fragen, wie unten dargestellt:

Enter current password for root (enter for none):
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

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

Setup MariaDB Cluster auf Node1

Erste, gehen Sie auf die Knoten 1 und erstellen Sie eine Konfigurationsdatei für Galera. In der Standardeinstellung, MariaDB liest Konfiguration von /etc/mysql/conf.d/ Verzeichnis. Dazu, führen Sie den folgenden Befehl:

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

Fügen Sie die folgenden Zeilen:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.102"
wsrep_node_name="Node1"

Speichern Sie die Datei, wenn Sie fertig sind.

Hinweis: 192.168.0.102 Adresse ist die IP-Adresse des Knoten 1

In Node2 auf Galera Cluster

Nächste, gehen Sie auf die Knoten 2 und erstellen Sie eine Konfigurationsdatei für Galera:

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

Fügen Sie die folgenden Zeilen:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.103"
wsrep_node_name="Node2"

Speichern Sie die Datei, wenn Sie fertig sind.

Hinweis: 192.168.0.103 Adresse ist die IP-Adresse des Knoten 2.

In Node3 auf Galera Cluster

Nächste, gehen Sie auf die Node3 und erstellen Sie eine Konfigurationsdatei für Galera:

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

Fügen Sie die folgenden Zeilen:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="galera_cluster"
wsrep_cluster_address="gcomm://192.168.0.102,192.168.0.103,192.168.0.104"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="192.168.0.104"
wsrep_node_name="Node3"

Speichern Sie die Datei, wenn Sie fertig sind.

Hinweis: 192.168.0.104 Adresse ist die IP-Adresse des Node3.

Konfigurieren der Firewall

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

Erste, ermöglicht den UFW Firewall mit dem folgenden Befehl:

Sudo Ufw aktivieren

Nächste, erlaubt alle Ports mit dem folgenden Befehl:

sudo ufw ermöglichen 3306 / tcp
sudo ufw ermöglichen 4444 / tcp
sudo ufw ermöglichen 4567 / tcp
sudo ufw ermöglichen 4568 / tcp
sudo ufw ermöglichen 4567 / udp

Sie können dann überprüfen Sie den Status der Firewall mit dem folgenden Befehl:

Sudo Ufw status

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

Starten Sie MariaDB Galera Cluster

Nach dem erfolgreichen alle Knoten Konfiguration, gehen Sie auf die Knoten 1 und starten Galera Cluster.

Bevor Galera starten, Sie müssen sicherstellen, dass MariaDB Dienst auf allen Knoten gestoppt wird.

Führen Sie den folgenden Befehl auf allen Knoten:

Sudo Systemctl Stop mysql

Jetzt, die Galera Cluster auf Node1 mit folgendem Befehl starten:

sudo galera_new_cluster

Jetzt, prüfen, ob der Cluster läuft oder nicht mit dem folgenden Befehl:

mysql -u root -p -e “Show-Status wie ‚wsrep_cluster_size‘”

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

+--------------------+-------+
| variable_name | Wert |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

Auf der Knoten2, Starten Sie den MariaDB Service:

Sudo Systemctl Start mysql

Sie können den Status von MariaDB Service überprüfen, ob es funktioniert oder nicht mit dem folgenden Befehl:

Sudo Systemctl Status mysql

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

?? mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2017-09-17 10:11:20 EDT; 10min ago
  Process: 715 ExecStartPost = / bin / sh -c systemctl ungesetzt-Umgebung _WSREP_START_POSITION (code = Exited, status=0/SUCCESS)
  Process: 713 ExecStartPost = / etc / mysql / debian-Start (code = Exited, status=0/SUCCESS)
  Process: 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 ungesetzt-Umgebung _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)
 Main PID: 661 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (Grenzwert: 4915)
   CGroup: /system.slice/mariadb.service
           ??????661 /usr/sbin/mysqld

Sep 17 10: 11: 11 debian systemd [1]: MariaDB Datenbank-Server starten ...
Sep 17 10: 11: 15 debian mysqld [661]: 2017-09-17 10: 11: 15 140287134630464 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process
Sep 17 10: 11: 20 debian systemd [1]: Gestartet MariaDB Datenbank-Server.

Jetzt, Ihr zweiter Knoten automatisch mit dem Cluster verknüpft haben sollte. Sie können, dass mit dem folgenden Befehl überprüfen:

mysql -u root -p -e “Show-Status wie ‚wsrep_cluster_size‘”

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

+--------------------+-------+
| variable_name | Wert |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

Auf der Node3, Starten Sie den MariaDB Service:

Sudo Systemctl Start mysql
mysql -u root -p -e “Show-Status wie ‚wsrep_cluster_size‘”

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

+--------------------+-------+
| variable_name | Wert |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

Sie Cluster arbeitet nun und Kommunikation miteinander.

Test-Datenbankreplikation

Jetzt, alle Knoten sind online, es ist Zeit, die Datenbankreplikation über den Galera Cluster zu testen. Beginnen wir mit einer Datenbank auf Node1 das Erstellen und prüfen, ob es auf allen Knoten repliziert wird.

Erste, anmelden, um MariaDB Konsole mit folgendem Befehl:

MySQL -u root -p

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

MariaDB [(keine)]> create database TEST_DB;
MariaDB [(keine)]> Datenbanken zu zeigen;

+--------------------+
| Datenbank |
+--------------------+
| TEST_DB |
+--------------------+

Gehen Sie nun in den Knoten 2 und Knoten 3, dann überprüfen Sie die Replikation funktioniert oder nicht:

MySQL -u root -p
MariaDB [(keine)]> Datenbanken zu zeigen;

+--------------------+
| Datenbank |
+--------------------+
| TEST_DB |
+--------------------+

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

Fazit

Ich hoffe, Sie haben jetzt genug Wissen zu installieren und MariaDB Galera Cluster auf Ubuntu konfigurieren 16.04. Sie können nun einfach auf mehrere skaliert, oder sogar Dutzende, von verschiedenen Knoten. Wenn Sie irgendwelche Zweifel haben oder weitere Abfrage, beziehen sich dann auf den Link Galera Cluster Doc

Quelle