Heim > Datenbank > MySQL-Tutorial > Hauptteil

So erstellen Sie einen hochverfügbaren MySQL-Cluster mithilfe einer verteilten Datenbankarchitektur

WBOY
Freigeben: 2023-08-02 16:29:13
Original
1512 Leute haben es durchsucht

So bauen Sie einen hochverfügbaren MySQL-Cluster mithilfe einer verteilten Datenbankarchitektur auf

Mit der Entwicklung des Internets wird die Nachfrage nach hoher Verfügbarkeit und Skalierbarkeit von Datenbanken immer höher. Die verteilte Datenbankarchitektur ist zu einer der effektivsten Möglichkeiten zur Lösung dieser Anforderungen geworden. In diesem Artikel wird erläutert, wie mithilfe einer verteilten Datenbankarchitektur ein hochverfügbarer MySQL-Cluster erstellt wird, und es werden relevante Codebeispiele bereitgestellt.

  1. Erstellen Sie einen MySQL-Master-Slave-Replikationscluster

MySQL-Master-Slave-Replikation ist die grundlegende Hochverfügbarkeitslösung von MySQL. Durch Master-Slave-Replikation können Datensicherung und Lese-/Schreibtrennung erreicht werden. Zuerst müssen wir eine Master-Bibliothek und mehrere Slave-Bibliotheken erstellen. Angenommen, wir haben drei Server, nämlich den Master-Server (192.168.1.100) und zwei Slave-Server (192.168.1.101 und 192.168.1.102).

Konfigurieren Sie Folgendes auf dem Hauptserver:

  1. Fügen Sie den folgenden Inhalt in der my.cnf-Konfigurationsdatei hinzu:

    server-id=1
    log-bin=mysql-bin
    Nach dem Login kopieren
  2. Erstellen Sie einen Benutzer für die Replikation in MySQL und erteilen Sie Replikationsberechtigungen:

    GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.1.%' IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;
    Nach dem Login kopieren
  3. Führen Sie die aus Führen Sie den folgenden Befehl aus, um die binäre Protokollaufzeichnung zu starten:

    FLUSH TABLES WITH READ LOCK;
    SHOW MASTER STATUS;
    Nach dem Login kopieren

    Zeichnen Sie die angezeigte Datei und Position auf, die in den folgenden Schritten verwendet werden.

Konfigurieren Sie den Slave-Server wie folgt:

  1. Fügen Sie den folgenden Inhalt in die my.cnf-Konfigurationsdatei ein:

    server-id=2
    Nach dem Login kopieren
  2. Führen Sie den folgenden Befehl aus, um den Slave-Server mit dem Master-Server zu verbinden:

    CHANGE MASTER TO 
     MASTER_HOST='192.168.1.100',
     MASTER_USER='replication',
     MASTER_PASSWORD='password',
     MASTER_LOG_FILE='[MASTER_LOG_FILE]',
     MASTER_LOG_POS=[MASTER_LOG_POS];
    START SLAVE;
    Nach dem Login kopieren

    Ändern [MASTER_LOG_FILE] und [MASTER_LOG_POS] werden durch die auf dem Master-Server protokollierte Datei und Position ersetzt.

Wiederholen Sie die obigen Schritte, um alle Slave-Server zu konfigurieren.

  1. Erstellen Sie einen MySQL-Cluster mit Lese-/Schreibtrennung.

Nachdem wir einen Master-Slave-Replikationscluster erstellt haben, können wir die Lese-/Schreibtrennung verwenden, um die Leistung der Datenbank weiter zu verbessern. Die Lese-Schreib-Aufteilung verteilt Lesevorgänge auf Slave-Server und sendet Schreibvorgänge an den Master-Server. Dies kann die Belastung des Hauptservers reduzieren und die Parallelitätsleistung von Lesevorgängen verbessern. 🔜 auf dem Slave-Server Konfigurieren Sie wie folgt:

    Fügen Sie den folgenden Inhalt in die my.cnf-Konfigurationsdatei ein:
  1. log-slave-updates
    Nach dem Login kopieren

  2. Führen Sie den folgenden Befehl aus, um den Slave-Server neu zu starten:
  3. SET @@GLOBAL.read_only=ON;
    Nach dem Login kopieren

  4. Als nächstes müssen wir konfigurieren Lese-Schreib-Trennung in der Anwendung. Unter der Annahme, dass wir PHP zum Entwickeln von Anwendungen verwenden, ist das Folgende ein vereinfachter Beispielcode:
read-only
Nach dem Login kopieren

Aufbau eines MySQL-Sharding-Clusters
  1. MySQL-Sharding ist eine Methode zum Verteilen von Daten auf mehrere Server, um die Leistung der Datenbank zu verbessern. Skalierbarkeit. Ein Shard-Cluster unterteilt Daten in mehrere Shards, wobei jeder Shard einen Teil der Daten speichert. Vor dem Sharding müssen Sie zunächst Sharding-Regeln in der Anwendung definieren.

  2. Das Folgende ist ein Beispielcode, der die Logik des Sharded-Speichers basierend auf der Benutzer-ID implementiert:
  3. SET @@GLOBAL.read_only=OFF;
    Nach dem Login kopieren

    Wenn Sie tatsächlich einen Sharded-Cluster erstellen, müssen Sie mehrere Datenbankserver erstellen und diese entsprechend konfigurieren. Jeder Datenbankserver speichert einen Teil der Daten und liest und schreibt die Daten über die Sharding-Regeln der Anwendung.

  4. Zusammenfassung

Durch den Aufbau eines MySQL-Master-Slave-Replikationsclusters, eines Lese-/Schreib-Trennclusters und eines Sharding-Clusters können wir einen hochverfügbaren MySQL-Cluster erreichen und die Leistung und Skalierbarkeit der Datenbank verbessern. In tatsächlichen Anwendungen müssen auch Aspekte wie Datensicherung und -wiederherstellung, Failover usw. berücksichtigt und entsprechende Konfigurationen und Optimierungen vorgenommen werden. Ich hoffe, dass die oben genannten Codebeispiele und Konfigurationen den Lesern helfen können, die verteilte Datenbankarchitektur zu verstehen und anzuwenden.

Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen hochverfügbaren MySQL-Cluster mithilfe einer verteilten Datenbankarchitektur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage