GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So richten Sie die MySQL-Master-Slave-Replikation ein

Einführung

Beim Cloud Computing bezieht sich die Master-Slave-Datenreplikation auf das Speichern derselben Informationen auf mehreren Servern. Ein Server steuert die Gruppe, und die anderen Geräte erledigen die Arbeit innerhalb desselben Knotens.

Replikation wird notwendig:

  • Wenn ein Unternehmen ein regelmäßiges tägliches Backup benötigt, das die Master-MySQL-Datenbank im Falle einer Speicherfehlfunktion wiederherstellen kann.
  • Überall dort, wo Informationen von mehreren Personen auf mehreren Rechnern gespeichert, geprüft und verändert werden müssen. Wenn ein Gruppenmitglied einen Änderungsbedarf feststellt, muss es an den designierten Master des Knotens gehen.

Diese Anleitung führt Sie durch die Einrichtung der Master-Slave-Replikation in MySQL.

Voraussetzungen

  • Ein Linux-basiertes System wie CentOS
  • Ein Benutzerkonto mit sudo Privilegien
  • Ein Paketinstallationsprogramm wie yum oder passend , normalerweise standardmäßig enthalten
  • Die private IP des Cloud-Servers (um Kosten für Bandbreite auf der öffentlichen IP während der Konfiguration zu vermeiden)

Schritte zum Einrichten der Master-Slave-Datenbankreplikation in MySQL

Lecker (Yellowdog Updater, Modified) ist das Paketverwaltungstool für RedHat Package Manager Linux-Systeme. In .deb Pakete, die lecker Werkzeug wird im Allgemeinen durch apt ersetzt Werkzeug. Daher in einem gegebenen Befehl apt-get kann normalerweise yum ersetzen .

Ein Installationsbefehl ist beispielsweise entweder yum install [package_name] oder apt-get install [package_name] für das identische Ergebnis. In diesem Artikel wird davon ausgegangen, dass Sie eine RPM-basierte Linux-Distribution verwenden. Daher yum Befehle verwendet werden.

Die Master-MySQL-Datenbank wird im Lese-/Schreibmodus ausgeführt. In der Zwischenzeit läuft der Slave-Server als schreibgeschützt. Nun zur Replikation.

Schritt 1:Konfigurieren Sie die MySQL-Datenbank für die Replikation

Verwenden Sie mysqldump Befehl zum Durchführen eines Dump-and-Restore von Informationen in der Slave-Datenbank. Dieser Befehl speichert die Daten in einer Datei, überträgt sie und stellt sie auf dem Slave-Knoten wieder her.

Schritt 2:Erstellen Sie 2 separate Cloud-Server

In diesem Schritt muss sich der privilegierte Benutzer bei der Cloud-Steuerung anmelden. Bei CentOS ist dies über das Basis-Image von CentOS 6 möglich.

Erstellen Sie zwei Linux-Cloud-Server mit entsprechendem RAM und weisen Sie ihnen unterschiedliche Namen zu.

Schritt 3:Aktualisieren Sie alle Softwarepakete auf ihre aktuelle Version

Benutzer und Systemadministratoren können alle Softwarepakete auf einem RPM-basierten Linux-System mit dem folgenden Befehl aktualisieren:

yum update

Schritt 4:MySQL installieren

Installieren Sie für Linux-Systeme, die auf dem RedHat Package Manager basieren, das MySQL-Serverpaket auf beiden Cloud-Servern mit dem Befehl:

yum install mysql-server

Stellen Sie den Dienst so ein, dass er bei jedem Systemstart mit dem folgenden Befehl ausgeführt wird:

chkconfig mysqld on

Schritt 5:MySQL starten

Finden Sie nun heraus, ob MySQL korrekt installiert wurde. Wenn ja, sollten Sie den Dienst mit dem folgenden Befehl starten können:

service mysqld start

Schritt 6:MySQL-Server-Root-Passwort einrichten

Es ist eine gute Idee, ein administratives Benutzerkennwort für MySQL festzulegen. Um das Passwort festzulegen, führen Sie das Skript für eine sichere Installation aus, das dem MySQL-Paket beiliegt, und antworten Sie mit Y auf alle Y/N-Eingabeaufforderungen.

Oder verwenden Sie /usr/bin/mysqladmin -u root password gefolgt von einem Leerzeichen und Ihrem neuen Passwort; und /usr/bin/mysqladmin -u root -h web01 password gefolgt von einem Leerzeichen und wieder Ihrem neuen Passwort.

Schritt 7:Konfigurieren Sie die Firewall für den Datenbankzugriff

Anwenden der TCP-Port-3306-Regel fügt eine Firewall-Richtlinie hinzu, die Datenverkehr auf Port 3306 zulässt. Diese Regel ermöglicht eine ordnungsgemäße Kommunikation zwischen Geräten.

Um die Firewall-Konfiguration zu speichern, verwenden Sie den Befehl:

service iptables save

Seien Sie vorsichtig, wenn Sie Ports öffnen, um sicherzustellen, dass Sie Hacks vermeiden.

Schritt 8:Server für die Replikation konfigurieren

Jeder Slave-Server benötigt eine Möglichkeit, sich mit dem Master-Server zu verbinden. Um eine Verbindung herzustellen, benötigen Sie einen MySQL-Benutzernamen und ein Passwort. Dazu müssen Sie auf dem Masterserver ein MySQL-Benutzerkonto einrichten.

Wir empfehlen die Einrichtung eines dedizierten Kontos für die Replikation. Gewähren Sie für diese Funktion einem beliebigen Konto das Replikations-Slave-Privileg. Sie können für jeden Sklaven das gleiche Konto oder unterschiedliche Konten erstellen. Den Benutzernamen und das Passwort des Kontos finden Sie immer im Klartext im Master-Repository.

So richten Sie ein neues Benutzerkonto mit dem Namen Replikation ein , und erlauben Sie ihm, sich zu Replikationszwecken von jedem Host auf yoursite.com zu verbinden Domain, führen Sie diesen Befehl auf dem Master-Server aus:

mysql> CREATE USER 'replication'@'%.yoursite.com' IDENTIFIED BY [space followed by password]; then: mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%.yoursite.com';

Schritt 9:Stellen Sie sicher, dass die Daten auf Ihren Servern übereinstimmen

Duplizieren Sie die Daten durch Dumping vom Master- auf den Slave-Server.

Flush-Tabellen müssen mit einer Lesesperre gesetzt werden. Die Datenbank des Masterservers darf nicht Nehmen Sie während dieses Schritts alle neuen Änderungen vor. Wenn auf dem Master-Server Informationen vorhanden sind, die mit den Slave-Servern koordiniert werden müssen, bevor der Replikationsprozess beginnt, ergreifen Sie die folgenden Maßnahmen:

  • Hören Sie auf, alle Befehle auf dem Master-Server zu verarbeiten.
  • Kopieren Sie den Dateinamen und die aktuellen Koordinaten für den Master-Server in sein Binärprotokoll (siehe Schritt 10 unten). Dies wird später beim Abschließen der Replikationskonfiguration benötigt.
  • Bevor Sie Ihrem Master-Server ermöglichen, weiterhin den Befehlen zu folgen, sichern Sie seine Daten.

Führen Sie alle diese Aktionen sorgfältig durch, um sicherzustellen, dass der Daten-Dump mit den aktuellen Daten des Master-Servers übereinstimmt. Andernfalls werden die Slave-Datenbanken nicht übereinstimmen oder beschädigt.

Schritt 10:Snapshot der Master-Datenbank erstellen

Beachten Sie beim Ausführen der folgenden Aktion, dass nur ein Snapshot der Master-Datenbank genügt, um mehrere Slave-Server zu konfigurieren.

Wenn Sie die Server-ID noch konfigurieren müssen und ein Binärlog auf dem Masterserver starten, müssen Sie den Server herunterfahren. Sie können jetzt einen Snapshot der Datenbanken erstellen.

Bringen Sie die Datendateien in das Verzeichnis des Slave-Servers:

shell> tar xvf dbdump.tar

Richten Sie bei Bedarf Eigentümerschaft und Berechtigungen für die Dateien ein. Möglicherweise müssen Sie dem Slave-Server Zugriff und die Möglichkeit zum Vornehmen von Änderungen gewähren. Starten Sie den Slave mit --skip-slave-start um zu vermeiden, dass die Replikation gestartet wird.

Konfigurieren Sie Ihren Slave-Server mit dem Hostnamen und den Anmeldeinformationen des Master-Servers. Verwenden Sie die Replikationskoordinaten des Master-Servers für die Slave-Datenbank. Sie leiten den Slave zu dem Punkt, an dem die Replikation beginnt, indem Sie die binäre Protokolldatei und Position verwenden.

Für einen konfigurierten Master-Server können Sie mysqldump verwenden um einen Schnappschuss zu machen.

Jetzt können Sie die Slave-Konfiguration aktualisieren. Achten Sie auch hier darauf, den Slave mit --skip-slave-start zu starten um zu vermeiden, dass die Replikation gestartet wird.

Importieren Sie den Dump mit dem Befehl:

shell> mysql < fulldb.dump

Schritt 11:Slave-Threads starten

Um die Updates auf dem Slave-Server sofort zu sehen, verwenden Sie:

mysql> START SLAVE;

Linux
  1. Wie richte ich das MySQL-Master-Slave-Setup mit CentOS 7-Knoten ein?

  2. So konfigurieren Sie die MySQL Multi-Master-Replikation unter Oracle Linux

  3. So installieren und konfigurieren Sie mysql 8 unter Ubuntu 20.04

  4. So richten Sie MySQL Cluster unter Ubuntu ein

  5. So richten Sie die MariaDB-Master-Slave-Replikation unter Ubuntu 18.04 ein

So richten Sie die MySQL-Replikation in RHEL/Centos ein

So richten Sie NordVPN auf Ubuntu ein

So stellen oder ändern Sie die Zeitzone unter Debian 11

Wie richte ich den Remote-MySQL-Zugriff auf cPanel ein?

So richten Sie die MariaDB-Master-Slave-Replikation unter CentOS 7 ein

Wie richte ich die MySQL-Master-Slave-Replikation auf RHEL 7 ein?