Originaltext: https://dev.mysql.com/doc/refman/8.0/en/group-replication-monitoring.html Übersetzer: kun Ich übersetze derzeit die offizielle MySQL 8.0-Dokumentation und dieser Artikel ist Abschnitt 18.3 „Überwachung der Gruppenreplikation“.
1. Überwachung der Gruppenreplikation Vorausgesetzt, MySQL wurde mit aktiviertem Leistungsschema kompiliert, verwenden Sie die Leistungsschematabellen, um die Gruppenreplikation zu überwachen. Die Gruppenreplikation fügt die folgenden Tabellen hinzu: -
performance_schema.replication_group_member_stats -
performance_schema.replication_group_members
In den folgenden vorhandenen Replikationstabellen des Performance-Schemas werden auch Informationen zur Gruppenreplikation angezeigt: -
performance_schema.replication_connection_status zeigt Informationen zur Gruppenreplikation an, z. B. Transaktionen, die von der Gruppe empfangen und in die Applier-Warteschlange (Relay-Protokoll) eingereiht wurden. -
performance_schema.replication_applier_status zeigt den Status von Kanälen und Threads im Zusammenhang mit der Gruppenreplikation an. Wenn viele verschiedene Worker-Threads Transaktionen ausführen, kann diese Tabelle auch verwendet werden, um zu überwachen, was jeder Worker-Thread tut.
Die vom Plugin „Group Replication“ erstellten Replikationskanäle haben die Namen: -
group_replication_recovery : Dieser Kanal wird für Replikationsänderungen im Zusammenhang mit der verteilten Wiederherstellungsphase verwendet. -
group_replication_applier – Dieser Kanal wird für eingehende Änderungen aus der Gruppe verwendet. Und der Kanal, auf den Transaktionen direkt aus der Gruppe angewendet werden.
In den folgenden Abschnitten werden die in jeder Tabelle verfügbaren Informationen beschrieben. 2. Status der Gruppenmitgliedsinstanz Serverinstanzen in einer Gruppe können sich in verschiedenen Zuständen befinden. Wenn die Server normal kommunizieren, melden alle Server den gleichen Status. Wenn jedoch eine Netzwerkpartitionierung vorliegt oder ein Gruppenmitglied die Gruppe verlässt, können je nach abgefragtem Server unterschiedliche Informationen gemeldet werden. Beachten Sie, dass wenn ein Gruppenmitglied die Gruppe verlassen hat, diese offensichtlich nicht die neuesten Informationen über den Status anderer Server melden kann. Wenn bei einer Netzwerkpartition die Verbindung zu mehr Servern getrennt wird, als die Schlichtungszahl vorsieht, ist eine Zusammenarbeit der Server untereinander nicht mehr möglich. Daher können sie den Status der verschiedenen Servermitglieder nicht kennen. Sie melden daher, dass einige Server nicht erreichbar sind, anstatt deren Status zu erraten. Serverstatus Feld | beschreiben | Gruppensynchronisierung | ONLINE | Das Mitglied kann als Gruppenmitglied mit allen Funktionen agieren, was bedeutet, dass Clients eine Verbindung herstellen und mit der Ausführung von Transaktionen beginnen können. | Ja | WIEDERHERSTELLUNG | Das Mitglied wird ein gültiges Mitglied der Gruppe und befindet sich im Wiederherstellungsprozess. Dabei empfängt es Statusinformationen vom Datenquellenknoten (Datenquellenknoten). | NEIN | OFFLINE | Das Plugin ist geladen, aber das Mitglied gehört keiner Gruppe an. | NEIN | FEHLER | Der Status des lokalen Mitglieds. Der Server wechselt in diesen Zustand, wenn während der Wiederherstellungsphase oder beim Anwenden von Änderungen ein Fehler auftritt. | NEIN | UNERREICHBAR | Wenn der lokale Fehlerdetektor den Verdacht hat, dass ein bestimmter Server nicht erreichbar ist, weil er abgestürzt ist oder die Verbindung versehentlich getrennt wurde, wird der Serverstatus als „UNERREICHBAR“ angezeigt. | NEIN |
Wichtig Sobald die Instanz in den Zustand „FEHLER“ wechselt, wird die Option „super_read_only“ auf „EIN“ gesetzt. Um den ERROR-Zustand zu verlassen, müssen Sie die Instanz manuell super_read_only=OFF konfigurieren.
Es ist wichtig zu beachten, dass es sich bei der Gruppenreplikation nicht um eine synchrone Replikation handelt, sie ist jedoch letztendlich synchron. Genauer gesagt werden die Transaktionen allen Gruppenmitgliedern in der gleichen Reihenfolge zugestellt, ihre Ausführung erfolgt jedoch asynchron. Dies bedeutet, dass jedes Mitglied nach der Annahme einer Transaktion die Transaktion in seinem eigenen Tempo durchführt. 3. Tabelle „replication_group_members“ Die Tabelle performance_schema.replication_group_members wird verwendet, um den Status der verschiedenen Serverinstanzen zu überwachen, die Mitglieder einer Gruppe sind. Die Tabelle „replication_group_members“ wird immer dann aktualisiert, wenn sich die Ansicht ändert, beispielsweise wenn sich die Konfiguration der Gruppe dynamisch ändert. Auf dieser Grundlage tauschen Servermitglieder einige ihrer Metadaten aus, um synchron zu bleiben und weiterhin zusammenzuarbeiten. Informationen werden zwischen den Mitgliedern der Gruppenreplikation ausgetauscht, sodass Informationen zu allen Gruppenmitgliedern von jedem Mitglied abgefragt werden können. Mithilfe dieser Tabelle können Sie sich einen umfassenden Überblick über den Status der Replikationsgruppe verschaffen. Dies können Sie beispielsweise durch Folgendes tun:
Wählen Sie * aus Performance_Schema.Replication_Group_MEMMBERS; ------+--------------------------+----------+--------------+----------+-------------------------------- _Replication_Applier | | Anhand dieses Ergebnisses können wir erkennen, dass die Gruppe aus drei Mitgliedern besteht, sowie aus dem Host und der Portnummer jedes Mitglieds, die der Client zur Verbindung mit dem Mitglied verwendet, und der server_uuid des Mitglieds. Die Spalte MEMBER_STATE zeigt einen der Instanzzustände der Gruppenmitglieder. In diesem Fall zeigt sie, dass alle drei Mitglieder der Gruppe ONLINE sind, und die Spalte MEMBER_ROLE zeigt, dass es zwei Slaves und einen Master gibt. Daher muss die Gruppe im Single-Primary-Modus ausgeführt werden. Die Spalte MEMBER_VERSION kann nützlich sein, wenn Sie eine Gruppe aktualisieren und die Mitglieder der Gruppe unterschiedliche MySQL-Versionen ausführen. 4. Replikationsgruppenmitgliedsstatistiken
Jedes Mitglied der Replikationsgruppe validiert und wendet von der Gruppe bestätigte Transaktionen an. Statistiken zur Validierung und Anwendung sind sehr nützlich, um zu verstehen, wie die Anwendungswarteschlange wächst, wie viele Konflikte ausgelöst werden, wie viele Transaktionen überprüft werden, welche Transaktionen von allen Mitgliedern festgeschrieben wurden usw. Die Tabelle performance_schema.replication_group_member_stats bietet Informationen auf Gruppenebene im Zusammenhang mit dem Authentifizierungsprozess sowie Statistiken zu den von jedem Mitglied der Replikationsgruppe empfangenen und initiierten Transaktionen. Informationen werden zwischen Gruppenmitgliedsinstanzen ausgetauscht, sodass Informationen zu allen Gruppenmitgliedern von jedem Mitglied abgefragt werden können. Beachten Sie, dass die Aktualisierung der Statistiken zu Remote-Mitgliedern durch den in der Option group_replication_flow_control_period angegebenen Nachrichtenzeitraum gesteuert wird. Diese können sich daher geringfügig von den lokal erfassten Statistiken des abfragenden Mitglieds unterscheiden. Tabelle replication_group_member_stats Feld | beschreiben | KANALNAME | Der Name des Gruppenreplikationskanals. | VIEW_ID | Die aktuelle Ansichtskennung für diese Gruppe. | Mitglieds-ID | Dieser Wert ist die UUID des Servermitglieds, mit dem wir aktuell verbunden sind. Jedes Mitglied der Gruppe hat einen anderen Wert. Da es für jedes Mitglied einzigartig ist, wird es auch zu einem Schlüsselwort. | Anzahl_Transaktionen_in_Warteschlange | Die Anzahl der Transaktionen in der Warteschlange, die auf die Überprüfung zur Konflikterkennung warten. Nach erfolgreicher Konfliktprüfung werden sie zur Anwendung in die Warteschlange gestellt. | Anzahl_überprüfter_Transaktionen | Gibt die Anzahl der Transaktionen an, die auf Konflikte überprüft wurden. | Anzahl_erkannter_Konflikte | Stellt die Anzahl der Transaktionen dar, die die Konflikterkennungsprüfung nicht bestanden haben. | Anzahl_Transaktionen_Zeilen_validierung | Gibt die aktuelle Größe der Konflikterkennungsdatenbank an (die Datenbank, anhand der jede Transaktion validiert wird). | Festgeschriebene Transaktionen aller Mitglieder | Zeigt eine Transaktion an, die für alle Mitglieder der aktuellen Ansicht erfolgreich festgeschrieben wurde. Dieser Wert wird in regelmäßigen Abständen aktualisiert. | Letzte konfliktfreie Transaktion | Zeigt die letzte Transaktionskennung an, bei der überprüft wurde, dass sie konfliktfrei ist. | Anzahl der Remote-Transaktionen in der Anwendungswarteschlange | Die Anzahl der von diesem Mitglied von der Replikationsgruppe empfangenen Transaktionen, die auf ihre Anwendung warten. | Anzahl_Transaktionen_remote_applied | Die Anzahl der von diesem Mitglied von der Replikationsgruppe empfangenen und angewendeten Transaktionen. | Anzahl_Transaktionen_lokal_vorgeschlagen | Die Anzahl der von diesem Mitglied initiierten und zur Koordinierung an die Replikationsgruppe gesendeten Transaktionen. | Count_transactions_local_rollback | Die Anzahl der von diesem Mitglied initiierten Transaktionen, die nach dem Senden an die Replikationsgruppe zurückgesetzt wurden. |
Diese Felder sind wichtig, um die Leistung der Mitglieder einer Gruppe zu überwachen. Angenommen, bei einem der Mitglieder einer Gruppe kommt es zu Verzögerungen, und es kann keine Synchronisierung mit dem Rest der Gruppe durchführen. In diesem Fall sehen Sie möglicherweise eine große Anzahl von Transaktionen in der Warteschlange. Auf Grundlage dieser Informationen können Sie entscheiden, Mitglieder aus der Gruppe zu entfernen oder die Transaktionsverarbeitung für andere Mitglieder der Gruppe zu verzögern und so die Anzahl der in die Warteschlange gestellten Transaktionen zu verringern. Diese Informationen können Ihnen auch bei der Entscheidung helfen, wie Sie die Flusssteuerung des Group Replication-Plugins optimieren. Oben finden Sie eine kurze Beschreibung der Details der MySQL-Überwachungsgruppenreplikation. Weitere Informationen zur MySQL-Überwachungsgruppenreplikation finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:- Detaillierte Erklärung des MySQL-Überwachungstools mysql-monitor
- Detaillierte Erläuterung der Überwachung von Spaltenüberläufen ohne Primärschlüssel in MySQL-Tabellen
- Verwenden Sie Grafana+Prometheus, um die Leistung des MySQL-Dienstes zu überwachen
- Detailliertes Tutorial zur Überwachung von Nginx/Tomcat/MySQL mit Zabbix
- Kenntnisse zur Überwachung der MySQL-Indexnutzung (es lohnt sich, sie zu erwerben!)
- Detaillierte Erklärung zur Überwachung von MySQL-Anweisungen
- Detaillierte Erklärung, wie Zabbix den Master-Slave-Status von MySQL überwacht
- Probleme und Lösungen bei der Nutzung der MySQL-Datenbanküberwachungssoftware Lepus
- Detaillierte Erläuterung der Leistungsüberwachung des MySQL-Servers mit Prometheus und Grafana
- Einführung in die Verwendung des MySQL-Echtzeitüberwachungstools orztop
- Zusammenfassung des eigentlichen Simulationsüberwachungs-MySQL-Dienst-Shell-Skripts
- Grundlegendes Tutorial zur Installation und Konfiguration von Zabbix zur Überwachung von MySQL
|