MariaDB ist ein kostenloses relationales Open-Source-Datenbankverwaltungssystem und eine der beliebtesten Optionen. Replikation ist der Vorgang des Kopierens von Daten von einem Master-Datenbankserver auf einen anderen Slave-Datenbankserver. In der Master-Slave-Topologie fungiert ein Server als Master und andere Server als Slaves. Bei der Master-Slave-Replikation werden Daten nur in eine Richtung repliziert. Wenn Sie die Daten auf dem Slave-Server ändern, werden sie nicht auf den Master-Server repliziert. Wenn der Master-Server ausfällt, können Sie Ihre Daten immer noch vom Slave-Server wiederherstellen.
Sie können die MariaDB-Master-Slave-Replikation für verschiedene Zwecke verwenden; einige davon sind unten aufgeführt:
- Skalierbarkeit und Hochverfügbarkeit
- Sicherungen
- Analytics
- Lastenausgleich
- Steigerung der Datenbankleistung
- Failover-Vermeidung
- Datensicherheit
In diesem Tutorial zeigen wir Ihnen, wie Sie die MariaDB-Master-Slave-Replikation auf einem Ubuntu 18.04-Server einrichten.
Voraussetzungen
- Zwei frische Ubuntu 18.04 VPS auf der Atlantic.Net Cloud Platform.
- Ein statisches Root-Passwort, das auf beiden Servern konfiguriert ist.
Schritt 1 – Erstellen Sie einen Atlantic.Net Cloud-Server
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 18.04 als Betriebssystem mit mindestens 2 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Ubuntu 18.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
apt-get update -y
Schritt 2 – MariaDB auf beiden Servern installieren
Zuerst müssen Sie MariaDB auf beiden Servern installieren. Sie können es installieren, indem Sie den folgenden Befehl ausführen:
apt-get install mariadb-server mariadb-client -y
Führen Sie nach der Installation von MariaDB den folgenden Befehl aus, um die MariaDB-Installation zu sichern:
mysql_secure_installation
Beantworten Sie alle Fragen wie unten gezeigt:
Geben Sie das aktuelle Passwort für root ein (Eingabe für keins):Drücken Sie die Eingabetaste Root-Passwort setzen? [J/n] J Neues Passwort:Neues Passwort erneut eingeben:Anonyme Benutzer entfernen? [J/n] J Root-Anmeldung aus der Ferne verbieten? [J/n] J Testdatenbank und Zugriff darauf entfernen? [J/n] J Berechtigungstabellen jetzt neu laden? [J/n] J
An diesem Punkt haben Sie beide MariaDB-Server installiert und gesichert.
Schritt 3 – Masterserver konfigurieren
Als Nächstes müssen Sie die binäre Protokollierung und Replikation auf dem Masterserver aktivieren. Öffnen Sie dazu die Datei /etc/mysql/mariadb.conf.d/50-server.cnf mit Ihrem bevorzugten Texteditor:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Suchen Sie die Zeile bind-address und ändern Sie den Wert auf 0.0.0.0, um eingehende Verbindungen zuzulassen.
Bindungsadresse =0.0.0.0
Fügen Sie als Nächstes die folgenden Zeilen am Ende der Datei hinzu:
server-id =1log_bin =/var/log/mysql/mysql-bin.loglog_bin_index =/var/log/mysql/mysql-bin.log.indexrelay_log =/var/log/mysql/mysql-relay-binrelay_log_index =/var/log/mysql/mysql-relay-bin.index
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den MariaDB-Dienst neu, um die Änderungen zu implementieren:
systemctl startet mariadb neu
Als Nächstes müssen Sie einen Replikationsbenutzer erstellen. Der Slave-Server verwendet diesen Benutzer, um sich beim Master-Server anzumelden und binäre Protokolle anzufordern.
Melden Sie sich zuerst mit dem folgenden Befehl bei der MariaDB-Shell an:
mysql -u root -p
Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden, und erstellen Sie dann einen Benutzer mit dem folgenden Befehl:
CREATE USER 'replication'@'%' identifiziert durch 'your-password';
Als nächstes erteilen Sie diesem Benutzer mit dem folgenden Befehl das Replikations-Slave-Privileg:
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';
Löschen Sie als Nächstes die Berechtigungen mit dem folgenden Befehl:
FLUSH-RECHTE;
Überprüfen Sie als Nächstes den Status des Master-Servers mit dem folgenden Befehl:
Master-Status anzeigen;
Sie sollten die folgende Ausgabe erhalten:
Als nächstes verlassen Sie die MariaDB-Shell mit dem folgenden Befehl:
BEENDEN;
Hinweis :Bitte merken Sie sich die Datei und Position Details aus der obigen Ausgabe. Sie benötigen diese Werte bei der Konfiguration des Slave-Servers.
Schritt 4 – Slave-Server konfigurieren
Melden Sie sich als nächstes beim Slave-Server an und öffnen Sie die Datei /etc/mysql/mariadb.conf.d/50-server.cnf:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Suchen Sie die Zeile bind-address und ändern Sie den Wert wie unten gezeigt auf 0.0.0.0:
Bindungsadresse =0.0.0.0
Fügen Sie als Nächstes die folgenden Zeilen am Ende der Datei hinzu:
server-id =2log_bin =/var/log/mysql/mysql-bin.loglog_bin_index =/var/log/mysql/mysql-bin.log.indexrelay_log =/var/log/mysql/mysql-relay-binrelay_log_index =/var/log/mysql/mysql-relay-bin.index
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den MariaDB-Dienst neu, um die Änderungen zu implementieren:
systemctl startet mariadb neu
Melden Sie sich als Nächstes mit dem folgenden Befehl bei der MariaDB-Shell an:
mysql -u root -p
Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden, und stoppen Sie dann die Slave-Threads wie unten gezeigt:
Sklave stoppen;
Führen Sie als Nächstes den folgenden Befehl aus, um den Slave so einzurichten, dass er den Master repliziert:
CHANGE MASTER TO MASTER_HOST ='your-master-host-ip', MASTER_USER ='replication', MASTER_PASSWORD ='your-password', MASTER_LOG_FILE ='mysql-bin.000001', MASTER_LOG_POS =313;
Starten Sie als Nächstes die Slave-Threads und beenden Sie die MariaDB-Shell wie unten gezeigt:
sklave starten;beenden;
Hinweis :Ändern Sie den obigen Befehl, um Ihre Master-Host-IP-Adresse und Ihr Passwort zu verwenden, die Sie in den vorherigen Schritten erstellt haben. Bitte verwenden Sie den Protokolldateinamen und die Positionswerte, die Sie vom Masterserver erhalten haben.
Schritt 5 – Datenbankreplikation testen
An diesem Punkt haben Sie die Master-Slave-Replikation konfiguriert. Jetzt ist es an der Zeit, die Replikation zwischen Master und Slave zu testen.
Melden Sie sich auf dem Master-Server mit dem folgenden Befehl bei der MariaDB-Shell an:
mysql -u root -p
Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden, und erstellen Sie dann eine Datenbank mit dem Namen mydb, wie unten gezeigt:
Datenbank mydb erstellen;
Erstellen Sie als Nächstes eine Tabelle mit dem Namen „products“ in der mydb-Datenbank:
use mydb;CREATE TABLE products(product_id INT NOT NULL AUTO_INCREMENT,product_name VARCHAR(100) NOT NULL,product_manufacturer VARCHAR(40) NOT NULL,submission_date DATE,PRIMARY KEY ( product_id ));
Führen Sie als Nächstes den folgenden Befehl aus, um die Tabelle zu überprüfen:
TABELLEN ANZEIGEN;
Ausgabe:
+----------------+| Tabellen_in_mydb |+----------------+| Produkte |+----------------+
Melden Sie sich auf dem Slave-Server mit dem folgenden Befehl bei der MariaDB-Shell an:
mysql -u root -p
Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden, und überprüfen Sie dann den Slave-Status:
Slave-Status anzeigen \G
Sie sollten die folgende Ausgabe sehen:
*************************** 1. Reihe ***************** ********** relay-bin.000002 Relay_Log_Pos:945 Relay_Master_Log_File:mysql-bin.000001 Slave_IO_Running:Ja Slave_SQL_Running:Ja
Führen Sie als Nächstes den folgenden Befehl aus, um zu überprüfen, ob die Datenbank repliziert wird:
Datenbanken anzeigen;
Sie sollten die mydb-Datenbank sehen, die Sie auf dem Master-Server erstellt haben:
+--------------------+| Datenbank |+--------------------+| Informationsschema || mydb || mysql || Leistungsschema |+--------------------+
Überprüfen Sie als Nächstes die Produkttabelle, die Sie auf dem Masterserver erstellt haben:
MariaDB [(none)]> use mydb;MariaDB [mydb]> show tables;
Sie sollten die Produkttabelle in der folgenden Ausgabe sehen:
+----------------+| Tabellen_in_mydb |+----------------+| Produkte |+----------------+
Herzliche Glückwünsche! Ihre MariaDB-Master-Slave-Replikation funktioniert wie erwartet. Sie können Ihre Datenbank jetzt im Falle eines Ausfalls einfach wiederherstellen. Beginnen Sie noch heute mit der MariaDB-Master-Slave-Replikation mit einem VPS-Hosting-Paket von Atlantic.Net.