Zusammenfassung der Wissenspunkte zur MySQL-Master-Slave-Replikation

Zusammenfassung der Wissenspunkte zur MySQL-Master-Slave-Replikation

Eine Optimierungslösung, wenn ein einzelner MySQL-Server den aktuellen Website-Verkehr nicht bewältigen kann. Es muss eine MySQL-Clustertechnologie erstellt werden.

1. Funktion:

Beim Einfügen, Ändern oder Löschen von Daten auf dem Master-Server werden die Daten automatisch mit dem Slave-Server synchronisiert.

Hinweis: Die Master-Slave-Replikation ist einseitig, nur Master->Slave

Es gibt zwei Typen: Übertragungstyp (ein Master und mehrere Slaves): wird im Allgemeinen verwendet für: Sicherung und Trennung von Lesen und Schreiben.

Ring (Multi-Master und Multi-Slave): Allgemeine Verwendung: Wenn der Hauptserver stark beansprucht wird, können regionsübergreifende Websites eine Datensynchronisierung erreichen

Wenn in einer Ringstruktur Datensätze gleichzeitig auf drei Servern in dieselbe Tabelle eingefügt werden, tritt ein „ID-Konfliktproblem“ auf.

Lösung: Lassen Sie die drei Server unterschiedliche IDs generieren;

Der Erste: 1,4,7...

Zweiter Kanal: 2,5,8...

Kanal 3: 3, 6, 9...

Dies kann in der MySQL-Konfigurationsdatei eingestellt werden:

2. Das Master-Slave-Prinzip (mithilfe des Bin-Protokolls)

In MySQL gibt es ein Protokoll namens Bin-Log (Binärprotokoll). In diesem Protokoll werden alle SQL-Anweisungen aufgezeichnet, die die Datenbank ändern (Einfügen, Aktualisieren, Löschen, ALTER TABLE, Gewähren usw.). Das Prinzip der Master-Slave-Replikation besteht eigentlich darin, das BIN-Protokoll auf dem Master-Server auf den Slave-Server zu kopieren und erneut auszuführen, sodass die Daten auf dem Slave-Server mit den Daten auf dem Master-Server identisch sind.

Erweiterung: Protokolliert in MySQL:

Abfrageprotokoll Fehlerprotokoll Bin-Protokoll

Langsames Protokoll: Sie können einen Zeitschwellenwert festlegen, beispielsweise 0,5 Sekunden, sodass alle SQL-Anweisungen, deren Ausführungszeit diesen Wert überschreitet, in Zukunft aufgezeichnet werden. Auf diese Weise können wir die langsamen SQL-Anweisungen erfassen und gezielt optimieren.

Zweck: Sie können schnell das SQL lokalisieren, das die Website herunterzieht, und es dann optimieren, indem Sie einen Index erstellen und die Ergebnisse dieses SQL zwischenspeichern.

3. Tatsächliche Konfiguration

Verwenden Sie das MySQL des Windows-Systems als Master-Server und das unter LINUX als Slave-Server.

Primärer Server:

1. Bin-Logging aktivieren

Ändern Sie die MySQL-Konfigurationsdatei: my.ini und fügen Sie hinzu:

Weisen Sie dem Server eine Server-ID zu (die ID-Werte des Master- und Slave-Servers dürfen nicht wiederholt werden)

Wenn es sich um einen Ringserver handelt, müssen Sie die folgenden Elemente hinzufügen:

log-slave-updates = on // Wenn es sich um einen Ring-Multiserver handelt, müssen Sie dieses Element festlegen.

Erstellen Sie auf dem Master-Server ein Konto für den Slave-Server, um Daten zu synchronisieren

Bei MySQL anmelden

Führen Sie ein SQL aus:

Ein Konto mit ausschließlich REPLICATION SLAVE-Berechtigungen wurde erstellt: Benutzername: Slave Passwort: 1234

Führen Sie SQL auf dem primären Server aus, um den Status des aktuellen Binärprotokolls des primären Servers anzuzeigen.

Hinweis: Diese beiden Werte ändern sich jedes Mal, wenn Sie die Daten ändern. Bedienen Sie daher nach dem Überprüfen dieser beiden Werte den Master-Server nicht und gehen Sie direkt zur Konfiguration des Slave-Servers. Andernfalls stimmen die Werte nicht überein und die Synchronisierung schlägt fehl.

Vom Server (Linux):

Binärprotokoll aktivieren

Ändern Sie die Konfigurationsdatei /etc/my.cnf

Legen Sie eine Server-ID fest:

3. Wenn es sich um einen Ringserver handelt, müssen Sie die folgenden Elemente hinzufügen:

log-slave-updates = on // Wenn es sich um einen Ring-Multiserver handelt, müssen Sie dieses Element festlegen.

4. Führen Sie SQL-Anweisungen auf dem Slave-Server aus, um die Adresse des Master-Servers zu konfigurieren:

Melden Sie sich bei MySQL an:

Einrichten des Slave-Servers und Starten der Replikation

5. Führen Sie SQL aus, um abzufragen, ob der Status des Slave-Servers erfolgreich konfiguriert wurde:

Wenn es zwei JA sind, ist der Code erfolgreich! Beenden!

Hinweis: Bevor die Konfiguration erfolgreich ist, werden die Daten auf dem Master-Server nicht automatisch auf den Slave-Server übertragen. Daher müssen Sie vor der Konfiguration alle Daten auf dem Master-Server manuell auf den Slave-Server importieren. Nach der Konfiguration von Master und Slave werden die Daten dann synchronisiert.

Anwendungen:

Der Slave-Server fungiert als Backup-Server für Daten. Wenn der Server stark ausgelastet ist, können Sie Master-Slave-Server verwenden, um Lese- und Schreibverkehr zu trennen und so die Belastung des Servers zu verringern. Regionsübergreifende Website-Optimierung

Wie erstellt man eine Message Board-Funktion unter Berücksichtigung der für verschiedene Regionen optimierten Architekturideen?

Das Obige sind alle Wissenspunkte zu den Prinzipien der MYSQL-Master-Slave-Replikation. Vielen Dank für Ihr Lernen und Ihre Unterstützung für 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • Ursachen und Lösungen für Verzögerungen bei der MySQL Master-Slave-Replikation
  • Konfigurationsprozess für die MySQL-Master-Slave-Replikation
  • Umfassende Interpretation der MySQL Master-Slave-Replikation, vom Prinzip bis zur Installation und Konfiguration
  • Detaillierte Erläuterung des Prinzips und der Praxis der MySQL-Master-Slave-Replikation
  • Detaillierte Erläuterung der Prinzipien und der Verwendung der MySQL-Master-Slave-Replikation und der Lese-/Schreibtrennung
  • Detaillierte Erläuterung der Rolle und des Funktionsprinzips der MySQL-Master-Slave-Replikation
  • Zusammenfassung der MySQL-Vollsicherung, Master-Slave-Replikation, kaskadierenden Replikation und Halbsynchronisierung
  • Tiefgreifendes Verständnis des Statusübergangs des MySQL-Master-Slave-Replikationsthreads
  • So überspringen Sie Fehler bei der MySQL-Master-Slave-Replikation

<<:  Tutorial zur Installation von Linux-JDK und zur Konfiguration von Umgebungsvariablen (jdk-8u144-linux-x64.tar.gz)

>>:  js, um einen einfachen Front-End-Paging-Effekt zu erzielen

Artikel empfehlen

Lösen Sie das Problem verstümmelter chinesischer Schriftzeichen in Mysql5.7

Wenn Sie MySQL 5.7 verwenden, werden Sie feststel...

Designtheorie: Eine Methode, um die Herzen der Menschen zu verstehen

<br />Einmal unterhielten sich Foyin und Her...

UrlRewriter-Caching-Probleme und eine Reihe damit verbundener Untersuchungen

Beim Entwickeln einer Website-Funktion kann der S...

Lösung für die Upload-Einschränkung von Element-ui-Uploaddateien

Frage Die Angabe des Typs der hochgeladenen Datei...

Detaillierte Erklärung der Methoden des fs-Moduls und des Path-Moduls in Node.js

Überblick: Das Dateisystemmodul ist ein einfacher...

Grundlegende Verwendung der Funktion find_in_set in MySQL

Vorwort Dies ist eine neue Funktion, die ich kürz...

Detaillierte Erklärung der Stammverzeichniseinstellungen in nginx.conf

Bei der Konfiguration von nginx.conf treten immer...

Implementierungsbeispiel eines Videoplayers basierend auf Vue

Wenn der vorhandene Videoplayer die Anforderungen...

Beispielcode zum Konvertieren des Mysql-Abfrageergebnissatzes in JSON-Daten

Mysql konvertiert Abfrageergebnissatz in JSON-Dat...

Rundungsvorgang des Datums-/Uhrzeitfelds in MySQL

Inhaltsverzeichnis Vorwort 1. Hintergrund 2. Simu...