Detaillierte Erläuterung der Implementierungsschritte von MySQL Dual-Machine Hot Standby und Load Balancing

Detaillierte Erläuterung der Implementierungsschritte von MySQL Dual-Machine Hot Standby und Load Balancing

Die MySQL-Datenbank verfügt nicht über einen inkrementellen Sicherungsmechanismus, bietet jedoch einen Master-Slave-Sicherungsmechanismus, bei dem alle Daten in der Masterdatenbank gleichzeitig in die Sicherungsdatenbank geschrieben werden. Implementieren Sie ein Hot Backup der MySQL-Datenbank.

Im Folgenden sind die spezifischen Schritte für das Master-Slave-Hot-Backup aufgeführt:

Angenommen, der Master-Server ist A (Master) und der Slave-Server ist B (Slave).

Eine: 192.168.0.104

B: 192.168.0.169

1. Master-Server-Autorisierung

Der autorisierte Sekundärserver kann sich mit dem Primärserver verbinden und Updates durchführen. Dies erfolgt auf dem primären Server, indem ein Benutzername und ein Kennwort für den Zugriff auf den sekundären Server erstellt werden. Sie können auch das Standardkonto und das Standardkennwort des primären Servers verwenden.

2. Datenreplikation

Kopieren Sie die vorhandenen Daten auf dem Master auf den Slave, damit die Daten in den beiden Datenbanken konsistent bleiben, wenn die Master-Slave-Datenbank eingerichtet wird. Das Exportieren und Importieren von Datenbanken wird nicht im Detail beschrieben.

3. Konfigurieren Sie den Masterserver

Ändern Sie die Konfigurationsdatei my.ini im Stammverzeichnis von mysql auf dem Master

Weisen Sie dem Masterserver in der Optionskonfigurationsdatei eine Server-ID zu. Die ID muss ein eindeutiger Wert im Bereich von 1 bis 2^23-1 sein. Die Server-IDs des Primärservers und des Sekundärservers dürfen nicht identisch sein. Darüber hinaus müssen Sie den Masterserver so konfigurieren, dass die binäre Protokollierung aktiviert wird. Fügen Sie dazu in der Optionskonfigurationsdatei die Startoption „log-bin“ hinzu.

Hinweis: Wenn das Binärprotokoll des Masterservers aktiviert ist, sollte vor dem Herunterfahren und Neustarten das vorherige Binärprotokoll gesichert werden. Nach dem Neustart sollte das vorherige Protokoll mit der Anweisung RESET MASTER gelöscht werden.

Grund: Alle Vorgänge in der Cartrader-Datenbank auf dem Master werden in der Protokolldatei aufgezeichnet und das Protokoll dann an den Slave gesendet. Nach Erhalt der Protokolldatei vom Master führt der Slave die entsprechenden Vorgänge aus, sodass die Datenbank im Slave dieselben Vorgänge ausführt wie die Master-Datenbank. Um die Datenkonsistenz aufrechtzuerhalten, muss daher sichergestellt werden, dass die Protokolldatei keine fehlerhaften Daten enthält.

4. Starten Sie den Master neu

Starten Sie den MySQL-Dienst nach der Konfiguration der oben genannten Optionen neu und die neuen Optionen werden wirksam. Jetzt werden alle Aktualisierungen der Informationen in der Datenbank in das Protokoll geschrieben.

5. Konfigurieren von Slaves

Fügen Sie der MySQL-Optionskonfigurationsdatei auf dem Slave-Server die folgenden Parameter hinzu:

[mysqld]
#Eindeutig und verschieden von der Server-ID auf dem primären Server.
Server-ID = 2
#Hostname oder IP-Adresse des primären Servers
Master-Host = 192.168.0.104
#Wenn der Master-Server nicht auf dem Standard-Port lauscht, müssen Sie die Master-Port-Option bestimmen
Master-Port = 3306
#Der in Schritt 2.1 erstellte Benutzername und das Passwort
Master-Benutzer=Root
Master-Passwort=123456
#Die Datenbank, auf die der Kopiervorgang angewendet werden soll (optional, standardmäßig alle)
replizieren-do-db=Autohändler
#Wenn die Verbindung zwischen dem primären und sekundären Server häufig fehlschlägt, müssen Sie den Master-Retry-Count und den Master-Connect-Retry erhöhen
#master-retry-count Die Anzahl der Verbindungsversuche
#master-connect-retry Die Anzahl der Sekunden, die nach einem Verbindungsfehler gewartet werden soll
Master-Wiederholungsanzahl = 999
Master-Verbindungswiederholung = 60

5. Starten Sie den Slave neu

Nach dem Neustart des MySQL-Dienstes auf dem sekundären Server wird im Datenverzeichnis eine Datei master.info erstellt, die Folgendes enthält:

Alle Informationen zum Replikationsprozess (Informationen zur Verbindung mit dem Masterserver und zum Datenaustausch mit dem Masterserver). Nach dem ersten Start überprüft der Slave-Server die Datei master.info, um relevante Informationen zu erhalten.

Wenn Sie die Replikationsoptionen ändern möchten, löschen Sie master.info und starten Sie den MySQL-Dienst neu. Die Datei master.info wird während des Startvorgangs mit den neuen Optionen in der Optionskonfigurationsdatei neu erstellt.

Importieren Sie die auf dem primären Server gesicherte Datenbankskriptdatei (cartrader.sql) in die Datenbank des sekundären Servers, um

Stellen Sie sicher, dass die Ausgangspunkte für Replikationsvorgänge auf dem primären und dem sekundären Server identisch sind.

6. Überprüfen Sie, ob der Status des Masters mit den Einstellungen übereinstimmt

7. Slave anzeigen

Im Allgemeinen wird die Replikationsfunktion nach dem Neustart des Slaves automatisch aktiviert, was durch die folgende Anweisung angezeigt werden kann

Auf dem Sklaven

mysql>show slave status

Wenn angezeigt wird, dass „Warten auf Senden des Ereignisses durch den Master“ ist, bedeutet dies, dass es gestartet wurde. Andernfalls läuft es.

mysql>start slave

So starten Sie den Slave

Nach der Ausgabe des Befehls SHOW SLAVE STATUS sollte der entsprechende Wert für Slave_IO_Running „YES“ sein.

Der entsprechende Wert von Slave_SQL_Running ist JA. Nur so können die Master- und Slave-Funktionen normal gesichert werden.

Der Befehl zum vorübergehenden Stoppen des Master-Slave-Hot-Backups lautet:

mysql>stop slave

Zusammenfassen

Oben sind die vom Herausgeber vorgestellten Implementierungsschritte für MySQL Dual-Machine Hot Standby und Load Balancing. Ich hoffe, dass sie für alle hilfreich sind. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Vorgehensweise bei der Verwendung der MySQL-Systemdatenbank zur Diagnose der Leistungsbelastung
  • So implementieren Sie Lastenausgleich in MySQL
  • So verwenden Sie Nginx als Load Balancer für MySQL
  • Implementierung der Lese-/Schreibtrennung und des Lastenausgleichs von MySQL basierend auf OneProxy
  • Erstellen Sie einen stabilen und hochverfügbaren Cluster basierend auf MySQL + MyCat, Lastausgleich, Master-Slave-Replikation und Lese-/Schreibtrennung
  • Python implementiert die Lese-/Schreibtrennung und den Lastenausgleich von MySQL
  • Keepalived+HAProxy zur Implementierung einer MySQL-Konfiguration für den hochverfügbaren Lastenausgleich
  • Analysieren Sie den durch Indizes in MySQL verursachten CPU-Lastanstieg
  • So erhöhen Sie schnell die Ladekapazität von MySQL-Datenbankverbindungen
  • Bereitstellung und Implementierung eines MySQL-Serverclusters mit Lastausgleichsfunktion
  • Beheben von Problemen mit hoher MySQL-CPU-Auslastung

<<:  Installation und Verwendung des Linux-Betriebs- und Wartungstools Supervisor (Prozessmanagement-Tool)

>>:  Transkript der Implementierung berechneter Vue-Eigenschaften

Artikel empfehlen

Beispielcode zur Implementierung eines reinen CSS-Popup-Menüs mit Transform

Vorwort Wenn Sie ein Topmenü erstellen, müssen Si...

So implementieren Sie eine einfache Datenüberwachung mit JS

Inhaltsverzeichnis Überblick erster Schritt Schri...

Eine großartige Sammlung von Lernressourcen zu Webstandards

Diese Spezifikationen sollen die Veröffentlichung ...

Drei Schritte zur Lösung des IE-Adressleistensymbol-Anzeigeproblems

<br />Dieses Tutorial zur Erstellung von Web...

Vue + Element UI realisiert Ankerpositionierung

In diesem Artikelbeispiel wird der spezifische Co...

Tiefgreifendes Verständnis des Linux-Lastausgleichs LVS

Inhaltsverzeichnis 1. LVS-Lastausgleich 2. Grundl...

So berechnen Sie mit Linux den von zeitgesteuerten Dateien belegten Speicherplatz

Öffnen Sie den Editor für geplante Aufgaben. Cent...

Vue.js-Textfeld mit Dropdown-Komponente

Ein Textfeld mit Dropdown-Liste ermöglicht es Ben...

Tutorial zur Installation von Pycharm und Ipython unter Ubuntu 16.04/18.04

Unter Ubuntu 18.04 1. sudo apt install python ins...

Div in HTML ausblenden Tabelle ausblenden TABLE- oder DIV-Inhalt im CSS-Stil

Ich habe heute Abend ein Problem gelöst, das mich...

Interviewer stellen häufig Fragen zum Lebenszyklus von React

React-Lebenszyklus Zwei Bilder zum besseren Verst...

So installieren Sie die grafische Benutzeroberfläche unter Linux

1. Linux-Installation (Root-Benutzerbetrieb) 1. I...

Warum wird die MySQL-Paging-Funktion bei Verwendung von Limits immer langsamer?

Inhaltsverzeichnis 1. Testexperiment 2. Leistungs...