


Lassen Sie uns gemeinsam die Hochverfügbarkeitsarchitekturtechnologie von MySQL analysieren
Dieser Artikel vermittelt Ihnen relevantes Wissen über die technische Analyse der MySQL-Architektur mit mittlerer und hoher Verfügbarkeit. Er stellt hauptsächlich die technische Analyse von MMM, der MySQL-Master-Slave-Architektur und Cluster-bezogenen Problemen vor.
Hintergrundbeschreibung
Mit der Entwicklung der Informationstechnologie setzen Unternehmen zunehmend auf Informationsmanagement. Die Dateninformationen verschiedener Geschäftsanwendungen werden hauptsächlich in Datenbanken gespeichert. Um verschiedene Verluste aufgrund von Datenunterbrechungen zu vermeiden, hat die hohe Verfügbarkeit von Datenbanken beim Aufbau von Unternehmensinformationen höchste Priorität. Gleichzeitig benötigen Schlüsselunternehmen in Branchen oder Bereichen, die mit der Volkswirtschaft und dem Lebensunterhalt der Menschen zusammenhängen, wie z. B. Telekommunikation, Finanzen, Energie und Militärindustrie, eine hohe Verfügbarkeit für die Speicherung wichtiger Daten. Das Datensystem muss rund um die Uhr laufen. 7, um Datenverlust und Datenschäden zu verhindern. Klicken Sie hier, um die Programmier-Lernmaterialien zu erhalten
Einführung in die Hochverfügbarkeitsarchitektur
Hochverfügbarkeitsarchitektur ist grundsätzlich Standard für Internetdienste. Sowohl Anwendungsdienste als auch Datenbankdienste müssen hochverfügbar sein. Für ein System kann viele Module umfassen, z. B. Front-End-Anwendungen, Caches, Datenbanken, Suchvorgänge, Nachrichtenwarteschlangen usw. Jedes Modul muss hochverfügbar sein, um die Hochverfügbarkeit des gesamten Systems sicherzustellen . Bei Datenbankdiensten ist die Hochverfügbarkeit möglicherweise komplexer. Die Verfügbarkeit von Diensten für Benutzer erfordert nicht nur Zugriff, sondern auch Korrektheitsgarantien. Daher erfordert eine Hochverfügbarkeit von Datenbanken mehr Authentifizierung.
MySQL-Hochverfügbarkeitsarchitekturklassifizierung
- MySQL implementiert MMM für Hochverfügbarkeit
- MySQL implementiert Hochverfügbarkeits-MHA
- MySQL implementiert Hochverfügbarkeits-Master-Slave-Architektur
- MySQL implementiert Hochverfügbarkeits-Clustermodus
Technische Analyse von MMM
MMM (Master-Master-Replikationsmanager für MySQL) ist eine Reihe von Skriptprogrammen, die Dual-Master-Failover und Dual-Master-Tagesverwaltung unterstützen.
MMM wurde in der Perl-Sprache entwickelt und wird hauptsächlich zur Überwachung und Verwaltung der MySQL-Master-Master-Replikation (Dual-Master-Replikation) verwendet. Obwohl es sich um eine Dual-Master-Replikation handelt, erlaubt das Unternehmen nur das gleichzeitige Schreiben auf einen Master , und der andere Der alternative Master stellt teilweise Lesedienste bereit, um das Aufwärmen des alternativen Masters beim Umschalten des primären Masters zu beschleunigen. Das Überwachungsende von MMM stellt mehrere virtuelle IPs (VIP) bereit, einschließlich einer beschreibbaren VIP Durch die Überwachungsverwaltung werden lesbare VIPs an das verfügbare MySQL gebunden. Wenn ein bestimmtes MySQL ausfällt, werden die VIPs auf ein anderes MySQL migriert.
- MMM implementiert einerseits die Failover-Funktion und andererseits kann durch seine zusätzlichen internen Tool-Skripte auch ein Leselastausgleich mehrerer Slaves erreicht werden.
Dieses Paket kann auch einen Leselastausgleich auf einer beliebigen Anzahl von Slave-Servern basierend auf einer Standard-Master-Slave-Konfiguration durchführen, sodass Sie es auch zum Starten virtueller IPs auf einer Gruppe replizierter Server verwenden können sind Skripte zur Implementierung von Datensicherungs- und Resynchronisierungsfunktionen zwischen Knoten.
- MMM-Basiskomponentenanalyse
mmm_mond: Überwachungsprozess, verantwortlich für alle Überwachungsarbeiten, Entscheidung und Verarbeitung aller Knotenrollenaktivitäten. Daher muss das Skript auf einem Supervisor ausgeführt werden.
mmm_agentd: Der auf jedem MSQL-Server ausgeführte Agentenprozess schließt die Überwachungsprüfungsarbeit ab und führt einfache Remote-Diensteinstellungen durch. Dieses Skript muss auf dem überwachten Computer ausgeführt werden.- mmm_control: Ein einfaches Skript, das Befehle zum Verwalten von mmm_mond bereitstellt.
- Grundlegendes Implementierungsprinzip von MMM
MMM bietet automatische und manuelle Möglichkeiten zum Entfernen der virtuellen IP eines Servers mit hoher Replikationsverzögerung in einer Gruppe von Servern. Gleichzeitig kann es auch Daten sichern und eine Replikation realisieren zwischen zwei Knoten.
MySQL selbst bietet keine Replikations-Failover-Lösung. Durch die MMM-Lösung kann ein Server-Failover erreicht werden, wodurch eine hohe Verfügbarkeit von MySQL erreicht wird.Einsatzszenarien von MMM
Da MMM die Datenkonsistenz nicht vollständig garantieren kann, eignet sich MMM für Szenarien, in denen die Anforderungen an die Datenkonsistenz nicht sehr hoch sind, Sie aber die Geschäftsverfügbarkeit in größtmöglichem Umfang sicherstellen möchten. Für Unternehmen, die hohe Anforderungen an die Datenkonsistenz haben, wird dringend davon abgeraten, eine Hochverfügbarkeitsarchitektur wie MMM zu verwenden.
Das MMM-Projekt kommt von Google: code.google.com/p/mysql-mas…Die offizielle Website ist: mysql-mmm.org- Einführung in MHA
- MHA (Master High Availability) ist derzeit im Bereich MySQL-Hochverfügbarkeit Es handelt sich um eine relativ ausgereifte Lösung. Sie wurde von Youshimaton von der japanischen Firma DeNA entwickelt (die jetzt bei Facebook arbeitet). Es handelt sich um eine hervorragende Reihe von Hochverfügbarkeitssoftware für Failover und Master-Slave-Förderung in MySQL Hochverfügbarkeitsumgebung. Während des MySQL-Failover-Prozesses kann MHA den Datenbank-Failover-Vorgang automatisch innerhalb von 0 bis 30 Sekunden abschließen, und während des Failover-Prozesses kann MHA die Datenkonsistenz in höchstem Maße sicherstellen, um eine echte Hochverfügbarkeit in diesem Sinne zu erreichen.
MHA ist ein Open-Source-MySQL-Hochverfügbarkeitsprogramm. Wenn MHA den Masterknotenausfall überwacht, wird der Slaveknoten mit den neuesten Daten automatisch zum neuen Masterknoten hochgestuft.
MHA erhält zusätzliche Informationen von anderen Knoten, um Konsistenzprobleme zu vermeiden. Das heißt, MHA erhält Dateninformationen von anderen Slave-Knoten und sendet diese Informationen an den Slave-Knoten, der dem Master-Knoten am nächsten liegt, sodass der Master-Knoten ausfällt Dies Der Slave-Knoten wird zum Master-Knoten befördert und dieser Slave-Knoten verfügt über alle Dateninformationen anderer Slave-Knoten.
MHA bietet auch die Online-Umschaltfunktion des Masterknotens, d. h. das Umschalten des Master-/Slave-Knotens bei Bedarf.
Die Grundkomponenten von MHA
MHA besteht aus zwei Teilen: MHA Manager (Verwaltungsknoten) und MHA Node (Datenknoten).
MHA Manager kann separat auf einem unabhängigen Computer bereitgestellt werden, um mehrere Master-Slave-Cluster zu verwalten, oder er kann auf einem Slave-Knoten bereitgestellt werden.
Implementierungsprinzip von MHA
- MHA-Knoten werden auf jedem MySQL-Server ausgeführt. Wenn der Master ausfällt, kann er den Slave automatisch zum neuen Master hochstufen Leiten Sie alle anderen Slaves zum neuen Master um. Der gesamte Failover-Prozess ist für die Anwendung völlig transparent.
- Während des automatischen MHA-Failover-Prozesses versucht MHA, das Binärprotokoll vom ausgefallenen Hauptserver zu speichern, um sicherzustellen, dass Daten nicht im größtmöglichen Umfang verloren gehen. Dies ist jedoch nicht immer möglich.
- Wenn beispielsweise die Hardware des Hauptservers ausfällt oder nicht über SSH darauf zugegriffen werden kann, kann MHA das Binärprotokoll nicht speichern und führt lediglich einen Failover durch und verliert die neuesten Daten. Mit der halbsynchronen Replikation von MySQL 5.5 können Sie das Risiko von Datenverlusten reduzieren.
- MHA kann mit halbsynchroner Replikation kombiniert werden. Wenn nur ein Slave das neueste Binärprotokoll erhalten hat, kann MHA das neueste Binärprotokoll auf alle anderen Slave-Server anwenden und so die Datenkonsistenz aller Knoten sicherstellen.
MHA-Nutzungsszenarien
Derzeit unterstützt MHA hauptsächlich eine One-Master-Multiple-Slave-Architektur.
Um MHA zu erstellen, muss ein Replikationscluster über mindestens drei Datenbankserver verfügen, einen Master und zwei Slaves, d. h. einer fungiert als Master, einer fungiert als Backup-Master und der andere fungiert als Slave.
Da mindestens drei Server erforderlich sind und aus Gründen der Maschinenkosten, hat Taobao es auch auf dieser Basis geändert. Derzeit unterstützt Taobao TMHA bereits einen Master und einen Slave.
Auf der Codeebene ist MHA nur eine Reihe von Perl-Skripten. Ich glaube also, dass es mit der technischen Stärke von Alibaba nicht schwierig ist, MHA so zu ändern, dass es einen Master und einen Slave unterstützt.
MySQL-Master-Slave-Architektur
Diese Art von Architektur wird häufig von Start-ups verwendet und erleichtert auch die schrittweise Erweiterung.
Merkmale dieser Architektur
- Geringe Kosten, schnelle und bequeme Bereitstellung
- Trennung von Lesen und Schreiben
- Durch rechtzeitiges Hinzufügen von Slave-Bibliotheken kann auch der Druck beim Lesen der Bibliothek verringert werden Hochverfügbarkeitssoftware kann Heartbeat verwenden, das vollständig für VIP, Daten und die Verwaltung des DRBD-Dienstes verantwortlich ist.
- kann nach dem Master-Ausfall automatisch und schnell umschalten, und die Slave-Bibliothek kann weiterhin Daten über VIP mit der neuen Master-Bibliothek synchronisieren
- Die Slave-Bibliothek unterstützt auch die Lese- und Schreibtrennung, die mithilfe von Middleware oder Programmen implementiert werden kann.
- MySQL-Cluster-Übersicht: Die MySQL-Cluster-Technologie bietet Redundanzfunktionen für MySQL in verteilten Systemen, erhöht die Sicherheit und kann die Systemzuverlässigkeit verbessern und Datenvalidität. Der MySQL-Cluster erfordert eine Reihe von Computern. Jeder Computer kann als Knoten verstanden werden und die Funktionen dieser Knoten sind unterschiedlich. MySQL Cluster kann entsprechend seiner Funktion in drei Arten von Knoten unterteilt werden: Verwaltungsknoten, Datenknoten und SQL-Knoten. Ein Computer im Cluster kann ein bestimmter Knoten oder eine Sammlung von zwei oder drei Knotentypen sein, um eine äußerst zuverlässige und leistungsstarke Cluster-Datenverwaltung für Anwendungen bereitzustellen.
- Derzeit beträgt das Datenvolumen Daher nehmen die Anforderungen an MySQL weiter zu. Die meisten früheren Hochverfügbarkeitslösungen weisen normalerweise bestimmte Mängel auf, z. B. die MySQL-Replikationslösung. Es dauert eine gewisse Zeit, bis der Master aktiv ist Wenn eine Master-Slave-Umschaltung erforderlich ist, ist viel Zeit erforderlich, daher hängt eine hohe Verfügbarkeit stark von Überwachungssoftware und automatisierten Verwaltungstools ab. Mit der kontinuierlichen Weiterentwicklung von MySQL Cluster wurden die Leistung und die hohe Verfügbarkeit erheblich verbessert.
- Grundkonzept von MySQL Cluster
- MySQL Cluster ist einfach eine MySQL-Cluster-Technologie, die aus einer Gruppe von Computern besteht Speichern Sie einen oder mehrere Knoten, einschließlich MySQL-Server, DNB-Cluster-Datenknoten, Verwaltung anderer Knoten und spezielle Datenzugriffsprogramme. Zusammen können diese Knoten die hohe Leistung und Verfügbarkeit für Anwendungen und die skalierbare Cluster-Datenverwaltung verbessern
Der Zugriffsprozess von MySQL Cluster erfolgt in der Regel über einen bestimmten Lastausgleichsalgorithmus. Die SQL-Knoten führen den Datenzugriff auf die Datenknoten durch und geben Datenergebnisse von den Datenknoten zurück Knoten einfach SQL-Knoten und Datenknoten konfigurieren und verwalten;
MySQL-Cluster-Knoten verstehen
MySQL-Cluster können je nach Knotentyp in drei Knotentypen unterteilt werden, nämlich Verwaltungsknoten, SQL-Knoten und Datenknoten Beim vollständigen MySQL-Clustersystem werden die Daten tatsächlich in der Speicher-Engine des NDB-Speicherservers gespeichert, die Tabellenstruktur wird auf dem MySQL-Server gespeichert, die Anwendung greift über den MySQL-Server auf die Daten zu und der Clusterverwaltungsserver verwaltet die Daten NDB-Speicher über das Verwaltungstool ndb_mgmd Server;
【1. Verwaltungsknoten】
Der Verwaltungsknoten wird hauptsächlich zur Verwaltung anderer Knoten verwendet. Die Datei config.ini wird normalerweise konfiguriert, um zu konfigurieren, wie viele Kopien im Cluster verwaltet werden müssen, wie viel Speicher für Daten und Indizes auf jedem Datenknoten reserviert werden soll, IP-Adresse und der Festplattenpfad zum Speichern von Daten auf jedem Datenknoten;
Verwaltungsknoten verwalten normalerweise Cluster-Konfigurationsdateien und Cluster-Protokolle. Jeder Knoten im Cluster ruft Konfigurationsinformationen vom Verwaltungsserver ab und fordert eine Möglichkeit an, festzustellen, wo sich der Verwaltungsserver befindet. Wenn im Knoten ein neues Ereignis auftritt, übermittelt der Knoten die Informationen dieser Art von Ereignis an den Verwaltungsserver und schreibt diese Informationen in das Cluster-Protokoll.
Im Allgemeinen ist mindestens ein Verwaltungsknoten im MySQL-Cluster-System erforderlich. Es ist auch erwähnenswert, dass der Verwaltungsknoten normalerweise zuerst gestartet wird, da der Datenknoten und der SQL-Knoten vor dem Start die Cluster-Konfigurationsinformationen lesen müssen Server, Anwendung Auf Datenknoten kann nicht direkt zugegriffen werden, Daten können nur über SQL-Knoten zurückgegeben werden. Jeder SQL-Knoten ist mit allen Speicherknoten verbunden. Wenn also ein Speicherknoten ausfällt, kann der SQL-Knoten die Anforderung zur Ausführung an einen anderen Speicherknoten übertragen. Im Allgemeinen gilt: Je mehr SQL-Knoten, desto geringer die jedem SQL-Knoten zugewiesene Last und desto besser ist die Gesamtleistung des Systems.
Datenknoten werden verwendet Speichern Sie die Daten im Cluster. Wenn ein Knoten ausfällt, gibt es immer einen anderen Datenknoten zum Speichern der Daten.
Normalerweise können diese drei verschiedenen logischen Knoten auf verschiedene Computer verteilt werden. Der Cluster verfügt über mindestens 3 Computer. Um sicherzustellen, dass der Clusterdienst normal aufrechterhalten werden kann, wird der Verwaltungsknoten normalerweise auf einem separaten Host platziert.
Empfohlenes Lernen:
MySQL-Video-Tutorial
Das obige ist der detaillierte Inhalt vonLassen Sie uns gemeinsam die Hochverfügbarkeitsarchitekturtechnologie von MySQL analysieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

MySQL ist für Anfänger geeignet, um Datenbankfähigkeiten zu erlernen. 1. Installieren Sie MySQL Server- und Client -Tools. 2. Verstehen Sie grundlegende SQL -Abfragen, wie z. B. SELECT. 3.. Stammdatenoperationen: Daten erstellen, Daten einfügen, aktualisieren und löschen. 4. Lernen Sie fortgeschrittene Fähigkeiten: Unterabfragen und Fensterfunktionen. 5. Debugging und Optimierung: Überprüfen Sie die Syntax, verwenden Sie Indizes, vermeiden Sie die Auswahl*und verwenden Sie die Grenze.

MySQL verwaltet strukturierte Daten effizient durch Tabellenstruktur und SQL-Abfrage und implementiert Inter-Tisch-Beziehungen durch Fremdschlüssel. 1. Definieren Sie beim Erstellen einer Tabelle das Datenformat und das Typ. 2. Verwenden Sie fremde Schlüssel, um Beziehungen zwischen Tabellen aufzubauen. 3.. Verbessern Sie die Leistung durch Indexierung und Abfrageoptimierung. 4. regelmäßig Sicherung und Überwachung von Datenbanken, um die Datensicherheit und die Leistungsoptimierung der Daten zu gewährleisten.

MySQL ist ein Open Source Relational Database Management -System, das in der Webentwicklung häufig verwendet wird. Zu den wichtigsten Funktionen gehören: 1. unterstützt mehrere Speichermotoren wie InnoDB und MyISAM, geeignet für verschiedene Szenarien; 2. Bietet Master-Slave-Replikationsfunktionen, um Lastausgleich und Datensicherung zu erleichtern. 3.. Verbessern Sie die Abfrageeffizienz durch Abfrageoptimierung und Index.

SQL wird verwendet, um mit der MySQL -Datenbank zu interagieren, um die Datenzusatz, Löschung, Änderung, Inspektion und Datenbankdesign zu realisieren. 1) SQL führt Datenoperationen über SELECT, INSERT, INTERATE, UPDATE, Löschen von Anweisungen durch. 2) Verwenden Sie Anweisungen für Datenbankdesign und -verwaltung create, ändern, fallen. 3) Komplexe Abfragen und Datenanalysen werden über SQL implementiert, um die Effizienz der Geschäftsentscheidungen zu verbessern.

Zu den grundlegenden Operationen von MySQL gehört das Erstellen von Datenbanken, Tabellen und die Verwendung von SQL zur Durchführung von CRUD -Operationen für Daten. 1. Erstellen Sie eine Datenbank: createdatabasemy_first_db; 2. Erstellen Sie eine Tabelle: CreateTableBooks (IDINGAUTO_INCRECTIONPRIMARYKEY, Titelvarchar (100) Notnull, AuthorVarchar (100) Notnull, veröffentlicht_yearint); 3.. Daten einfügen: InsertIntoBooks (Titel, Autor, veröffentlicht_year) va

Die Hauptaufgabe von MySQL in Webanwendungen besteht darin, Daten zu speichern und zu verwalten. 1.Mysql verarbeitet effizient Benutzerinformationen, Produktkataloge, Transaktionsunterlagen und andere Daten. 2. Durch die SQL -Abfrage können Entwickler Informationen aus der Datenbank extrahieren, um dynamische Inhalte zu generieren. 3.Mysql arbeitet basierend auf dem Client-Server-Modell, um eine akzeptable Abfragegeschwindigkeit sicherzustellen.

Zu den Schritten zum Erstellen einer MySQL -Datenbank gehören: 1. Erstellen einer Datenbank und Tabelle, 2. Daten einfügen, und 3. Durchführen von Abfragen. Verwenden Sie zunächst die Anweisungen für erstellte und creatEtable, um die Datenbank und Tabelle zu erstellen, und verwenden Sie dann die Anweisung InsertInto, um die Daten einzulegen, und verwenden Sie schließlich die Auswahlanweisung, um die Daten abzufragen.

MySQL ist für Anfänger geeignet, da es einfach zu bedienen und leistungsfähig ist. 1.Mysql ist eine relationale Datenbank und verwendet SQL für CRUD -Operationen. 2. Es ist einfach zu installieren und erfordert, dass das Stammbenutzerkennwort konfiguriert wird. 3.. Verwenden Sie Einfügen, Aktualisieren, Löschen und Wählen Sie, um Datenvorgänge auszuführen. 4. OrderBy, wo und Join kann für komplexe Abfragen verwendet werden. 5. Debugging erfordert die Überprüfung der Syntax und verwenden Sie Erklärungen zur Analyse der Abfrage. 6. Die Optimierungsvorschläge umfassen die Verwendung von Indizes, die Auswahl des richtigen Datentyps und der guten Programmiergewohnheiten.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool