Ein kurzer Überblick über die Replikationslogik: 1. Die Masterdatenbank zeichnet Änderungen an der Datenbankinstanz im Binärprotokoll auf. Oben ist die Standardlogik für die asynchrone Replikation. Die halbsynchrone Replikation unterscheidet sich geringfügig und wird hier nicht beschrieben. Darüber hinaus lässt sich sehr einfach feststellen, ob in der Slave-Bibliothek eine Verzögerung vorliegt: Ursachen für Verzögerungen und Lösungen 〇Häufige DML-Anfragen an die Hauptdatenbank (große tps)Das heißt, die Hauptdatenbank weist viele Schreibanforderungen mit einer großen Anzahl gleichzeitiger Einfüge-, Lösch- und Aktualisierungsvorgänge auf, wodurch in kurzer Zeit eine große Menge an Binärprotokollen generiert wird. 【Ursachenanalyse】 Die Masterdatenbank schreibt Daten gleichzeitig, während der 【Lösung】Führen Sie Sharding durch und verteilen Sie Schreibanforderungen durch Skalierung. Oder erwägen Sie ein Upgrade auf MySQL 5.7+ und aktivieren Sie die parallele Replikation basierend auf logischen Uhren. 〇Die Hauptdatenbank führt große Transaktionen aus Beispielsweise das Importieren einer großen Menge an Daten: 【Ursachenanalyse】Wenn die Master-Datenbank 200 Sekunden zum Aktualisieren einer großen Tabelle benötigt und die Master- und Slave-Datenbanken ähnliche Konfigurationen aufweisen, benötigt die Slave-Datenbank zum Aktualisieren der großen Tabelle fast die gleiche Zeit. Zu diesem Zeitpunkt beginnen sich die Verzögerungen der Slave-Datenbank anzuhäufen und nachfolgende Ereignisse können nicht aktualisiert werden. 【Lösung】Teilen Sie große Transaktionen auf und übermitteln Sie sie rechtzeitig. 〇Die Hauptdatenbank führt DDL-Anweisungen für große Tabellen aus Das Phänomen ähnelt dem Ausführen großer Transaktionen in der Hauptdatenbank. 【Ursachenanalyse】 1. DDL wurde nicht gestartet und ist blockiert. 【Lösung】 Verwenden Sie 〇Die Konfiguration der Master-Bibliothek und der Slave-Bibliothek ist inkonsistent: 【Ursachenanalyse】Hardware: Der Master-Instanz-Server verwendet SSD, während der Slave-Instanz-Server eine normale SAS-Festplatte verwendet und die CPU-Hauptfrequenz inkonsistent ist. Konfiguration: beispielsweise inkonsistente Schreibstrategie für RAID-Karten, inkonsistente Einstellungen der OS-Kernel-Parameter, inkonsistente Strategie zur Platzierung von MySQL-Festplatten usw. 【Lösung】 Versuchen Sie, die Konfiguration von DB-Maschinen zu vereinheitlichen (einschließlich Hardware- und Optionsparameter). 〇Der Tabelle fehlt ein Primärschlüssel oder ein eindeutiger Index Wenn 【Ursachenanalyse】Nehmen wir einen Extremfall an, in dem die Masterdatenbank 200.000 Datenzeilen in einer 5-Millionen-Tabelle aktualisiert. Die Update-Anweisung erfordert einen vollständigen Tabellenscan. Im Zeilenformat werden 200.000 Update-Vorgänge im Binärprotokoll aufgezeichnet. In diesem Fall ist die Wiedergabe des SQL-Threads sehr langsam und jedes Update erfordert möglicherweise einen vollständigen Tabellenscan. 【Lösung】Überprüfen Sie die Tabellenstruktur, um sicherzustellen, dass jede Tabelle einen expliziten Auto-Increment-Primärschlüssel hat, und erstellen Sie entsprechende Indizes. 〇Der Druck der Bibliothek selbst ist zu groß 【Ursachenanalyse】 Die Slave-Datenbank führt eine große Anzahl von Auswahlanforderungen aus, oder die meisten Auswahlanforderungen des Unternehmens werden an die Slave-Datenbankinstanz weitergeleitet, sogar eine große Anzahl von OLAP-Unternehmen, oder die Slave-Datenbank wird gesichert usw. 【Lösung】Erstellen Sie weitere Slaves, um Lese-Anfragen zu verteilen und den Druck auf vorhandene Slave-Instanzen zu verringern. 0MyISAM-Speicher-Engine Zu diesem Zeitpunkt wartet die Slave-Bibliothek 【Ursachenanalyse】 MyISAM unterstützt nur Sperren auf Tabellenebene und Lesen und Schreiben können nicht gleichzeitig ausgeführt werden. 【Lösung】 Natürlich entscheide ich mich, es zu verzeihen. Da ich mich für MyISAM entschieden habe, sollte ich mental darauf vorbereitet sein. (Es gibt andere Szenarien, in denen die Verwendung von MyISAM in einer Replikationsstruktur nicht empfohlen wird.) Zusammenfassen: Verwenden Sie Wenn keiner der oben genannten Gründe zutrifft, bitten Sie die DBA-Experten um Hilfe. Natürlich ist Der vollständige Text ist vorbei. Oben finden Sie ausführliche Informationen zu den Ursachen und Lösungen für die Verzögerung der MySQL-Master-Slave-Replikation. Weitere Informationen zur Verzögerung der MySQL-Master-Slave-Replikation finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Lassen Sie uns ausführlich über Vues Mixin und Vererbung sprechen
>>: Nginx-Weiterleitung basierend auf URL-Parametern
Das Image kann problemlos direkt in das öffentlic...
Für die Entwicklung benötigen Sie immer Daten. Al...
1.html <div Klasse="loginbody"> &...
Installieren Sie zunächst PHP5 ganz einfach yum i...
Als ich kürzlich ein WeChat-Applet schrieb, erfor...
Code kopieren Der Code lautet wie folgt: <styl...
In diesem Artikel wird das Tutorial zur kostenlos...
Code kopieren Der Code lautet wie folgt: <form...
Inhaltsverzeichnis 1. Verwende Closures 2. Verwen...
Inhaltsverzeichnis Überblick Funktionalität und L...
Inhaltsverzeichnis Vorwort Szenarien für die Verw...
Die Standarddatenbank von CentOS7 ist MariaDB, ab...
Übergeben von Werten zwischen Miniprogrammseiten ...
Nginx unterstützt drei Möglichkeiten zum Konfigur...
Der erste und wichtigste Schritt ist: Wie install...