Mariadb Replikation auf Rhel 8/ Centos 8

Mariadb Replikation auf Rhel 8/ Centos 8
Katastrophen passieren, und wenn dies der Fall ist, können kostbare Daten mit dem Wind gehen, nie wieder wiederhergestellt werden, und wenn sie sich erholt haben. Und hier kommt das Konzept der Replikation ins Spiel. Die Replikation hat einfach mehrere Kopien einer Datenbank. Die Replikation stellt sicher, dass es zu jederzeit Sicherungskopien der primären Datenbank gibt, so dass die Datenbank, die die Datenbank abnimmt, weiterhin aus den Sicherungsdatenbanken abgerufen werden können. In diesem Tutorial lernen Sie, wie Sie die Mariadb-Master-Slave-Replikation auf CentOS 8 konfigurieren.

Labor -Setup

Masterknoten - 192.168.43.13
Sklavenknoten - 192.168.43.252

Schritt 1: Installieren Sie Mariadb sowohl auf Master- als auch auf Sklavenservern

Zunächst müssen Sie Mariadb sowohl auf dem Master als auch auf dem Sklaven installieren. Befolgen Sie also die folgenden Schritte:

Melden Sie sich zunächst beim Master -Server an und aktualisieren Sie die Systempakete wie gezeigt:

$ sudo dnf update

Nachdem Sie Ihr System erfolgreich aktualisiert haben, fahren Sie nun fort und installieren Sie Mariadb

$ sudo dnf install mariadb-server

Sobald die Installation erfolgreich ist, können Sie überprüfen, ob Mariadb durch Ausführen des Befehls installiert ist:

$ rpm -qa | Grep Mariadb

Um detailliertere Informationen zu erhalten, führen Sie den Befehl aus:

$ rpm -qi mariadb -server

Beginnen Sie nun den Mariadb -Service

$ sudo systemctl starten mariadb

Darüber hinaus können Sie den Dienst ermöglichen, automatisch mit einer Start-/Neustartsitzung zu starten.

$ sudo systemctl aktivieren mariadb

Um zu überprüfen, ob die MariADB -Datenbank -Engine in Betrieb ist, geben Sie den Befehl aus:

$ sudo systemctl status mariadb

Perfekt! Mariadb ist in Betrieb, wie wir erwartet hatten.

Mariadb ist nicht gesichert und jeder Benutzer kann sich bei der Datenbank -Engine anmelden und Zugriff auf alle Datenbanken haben und Änderungen vornehmen. Natürlich wollen wir nicht, dass das passiert und die Sicherung der Datenbank eine oberste Priorität haben sollte. Wir müssen daher die Datenbankmotor sichern, indem wir ein Stammkennwort festlegen. Führen Sie also den Befehl unten aus:

$ sudo mysql_secure_installation

Was folgt, ist eine interaktive Eingabeaufforderung, mit der das Stammkennwort für die Datenbank festgelegt und einige Fragen beantwortet werden müssen.

Standardmäßig wird Mariadb auf Port 3306 ausgeführt. Wenn Sie eine Firewall ausführen, müssen Sie diesen Port so zulassen, dass die Datenbank -Engine für externe Benutzer und Dienste zugänglich sein kann.

Um den Port auf der Firewall zu öffnen, führen Sie die folgende Firewall -Regel aus:

$ sudo firewalld-cmd --add-port = 3306/tcp --zone = public --permanent

Damit die Regel angewendet werden kann, laden Sie die Firewall neu:

$ sudo firewalld-cmd-Relad

Wiederholen Sie auf dem Slave -Server die gleichen Schritte auf dem Slave -Server, wobei Mariadb erfolgreich installiert und gesichert ist.

Schritt 2: Konfigurieren Sie MariADB auf dem Master -Server

Wir müssen Mariadb -Daemon so konfigurieren, dass unser beabsichtigter Master -Server als Server im Setup fungiert. Öffnen Sie also die Konfigurationsdatei /etc/mein.CNF

$ sudo vim /etc /mein.CNF

Gehen Sie die folgende Konfiguration an

[Mysqld]
Bind-Address = 192.168.43.13
server-id = 1
log_bin = mysql-bin
BinLog-format = row

Speichern und beenden Sie die Konfigurationsdatei. Um die Änderungen zu bewirken, starten Sie den Mariadb -Service neu.

$ sudo systemctl starten Sie Mariadb-Server neu

Schritt 3: Konfigurieren Sie den Slave -Server

Genau wie der Master -Server muss der Slave konfiguriert werden, um sich wie einer zu verhalten. Öffnen Sie also die Konfigurationsdatei wie zuvor:

$ sudo vim /etc /mein.CNF

Gehen Sie die folgende Konfiguration an

[Mysqld]
Bind-Address = 192.168.43.252
server-id = 2
log_bin = mysql-bin
BinLog-format = row

Seien Sie daran interessiert, eine andere zu liefern. 'server_id'vom Master Server, der in diesem Fall 2 ist. Und genau wie der Master -Server die 'bind_address'Parameter sollte auf die IP -Adresse des Slave verweisen.

Speichern und beenden Sie die Datei.

Schritt 3: Erstellen Sie einen Replikationsbenutzer auf dem Master -Server

Um den Slave zur Replikation zu konfigurieren, müssen wir zum Masterknoten zurückkehren und einen Replikationsbenutzer erstellen. Melden Sie sich bei der MariADB -Datenbankmotor an.

$ mysql -u root -p

Stoppen Sie zuerst den Sklavenbenutzer.

Mariadb [(keine)]> Stop Sklave;

Das Erstellen eines Replikationsbenutzers mit den angezeigten Befehlen:

Mariadb [(keine)]> Replikation Sklave auf *.* Zu 'replica_user' @'192.168.43.252 '
Identifiziert durch 'P@Ssword123';
Abfrage OK, 0 Zeilen betroffen (0.06 Sek.)
Mariadb [(keine)]> Flush -Privilegien;
Abfrage OK, 0 Zeilen betroffen (0.04 Sek.)
Mariadb [(keine)]> Flush -Tabellen mit Leseschloss;
Abfrage OK, 0 Zeilen betroffen (0.02 Sek.)
Mariadb [(keine)]> exit;
Abfrage OK, 0 Zeilen betroffen (0.02 Sek.)

Überprüfen Sie anschließend den Status des Meisters, indem Sie Laufen haben:

Mariadb [(keine)]> Master Status \ g anzeigen

Beachten Sie sorgfältig die Werte des Dateinamens und der Position. Diese werden später verwendet, um den Slave zur Replikation zu konfigurieren.

Aus der obigen Ausgabe bedeutet dies:

Datei: Mysql-bin.000001
Position: 1317

Beenden Sie die Mariadb -Engine und erstellen Sie eine Sicherungskopie des Master -Servers wie gezeigt:

$ sudo mysqldump -alle databases -U root -p> masterdatabase.sql

Melden Sie sich bei Mariadb zurück und entsperren Sie die Tabellen:

Mariadb [(keine)]> entsperren Tabellen;
Mariadb [(keine)]> exit;

Denken Sie an die Sicherungskopie, die wir für die Master -Datenbank erstellt haben? Wir sind bereit, es auf den Sklavenserver zu kopieren. Führen Sie also den Befehl unten aus:

$ scp Masterdatabase.SQL [email protected]:/root/

Schritt 4: Konfigurieren Sie den Slave zur Replikation

Importieren Sie die Sicherungsdatei, die wir vom Master in den Mariadb -Motor kopiert haben.

$ mysql -u root -p < masterdatabase.sql

Und dann den Mariadb -Service neu starten

$ systemctl starten Sie Mariadb neu

Melden Sie sich nun bei der MariADB -Datenbank -Engine an und konfigurieren Sie den Sklaven wie folgt:

Mariadb [(keine)]> Stop Sklave; Mariadb [(keine)]> Master in Master_host = '192 ändern.168.43.13 ', master_user =' replica_user ',
Master_password = 'p@ssword123', master_log_file = 'mysql-bin-bin.000001 ' ,
Master_log_pos = 1317;

Denken Sie an die Werte, von denen wir sagten, dass Sie sich erinnern sollten und möglicherweise aufschreiben, wenn Sie den Status des Master -Servers anzeigen? Diese wurden schließlich in der definiert Master_log_file Und Master_log_pos Attribute wie gesehen.

Starten Sie schließlich den Sklaven, um den Sklaven zu initialisieren, um sich vom Meister zu replizieren:

Mariadb [(keine)]> Sklave starten;

Überprüfen Sie dann den Status des Sklaven

Mariadb [(keine)]> Sklavenstatus zeigen;

Wenn die Konfiguration perfekt durchgeführt wurde, sollten Sie die Ausgabe nicht frei von Fehlern erhalten.

Der Sklave ist jetzt zur Replikation bereit.

Schritt 5: Testen der Datenbankreplikation

Letztendlich müssen wir bestätigen, ob unser Setup funktioniert. Melden Sie sich also in der Mariadb -Instanz im Master an und erstellen Sie eine Testdatenbank wie gezeigt

Mariadb [(keine)]> Datenbank erstellen replica_db;

Bestätigen Sie dann die Erstellung der Datenbank

Mariadb [(keine)]> Datenbanken anzeigen;

Gehen Sie zurück zum Sklavenknoten und überprüfen Sie, ob die Datenbank vorliegt.

Perfekt! Unser Setup funktioniert! Alle im Master erstellten nachfolgenden Datenbanken werden automatisch repliziert und ändert sich auf dem Slaveknoten synchronisiert. Und das bringt uns zum Ende dieses Leitfadens.