Heim >Datenbank >MySQL-Tutorial >Datenredundanz und -erweiterung erreichen: Anwendungsfälle der MySQL-Master-Slave-Replikationstechnologie in Clusterumgebungen

Datenredundanz und -erweiterung erreichen: Anwendungsfälle der MySQL-Master-Slave-Replikationstechnologie in Clusterumgebungen

WBOY
WBOYOriginal
2023-09-08 16:36:331000Durchsuche

Datenredundanz und -erweiterung erreichen: Anwendungsfälle der MySQL-Master-Slave-Replikationstechnologie in Clusterumgebungen

Erzielung von Datenredundanz und -erweiterung: Anwendungsfälle der MySQL-Master-Slave-Replikationstechnologie in einer Clusterumgebung

Einführung:
Mit der Entwicklung des Internets, der zunehmenden Datenmenge und der zunehmenden Anzahl von Benutzern werden traditionelle Stand- Datenbanken allein sind nicht mehr in der Lage, die Anforderungen an hohe Parallelität und hohe Verfügbarkeit zu erfüllen. In diesem Zusammenhang sind verteilte Datenbanken zu einer der beliebtesten Lösungen geworden. Als eine der am häufigsten verwendeten relationalen Datenbanken hat die Master-Slave-Replikationstechnologie von MySQL auch in verteilten Datenbanken große Beachtung gefunden. In diesem Artikel werden die Anwendungsfälle der MySQL-Master-Slave-Replikationstechnologie zur Erzielung von Datenredundanz und -erweiterung in einer Clusterumgebung vorgestellt und entsprechende Codebeispiele bereitgestellt.

1. Einführung in die MySQL-Master-Slave-Replikationstechnologie
Die MySQL-Master-Slave-Replikationstechnologie ist eine Datenreplikationsmethode, die auf Binärprotokollen basiert. Es zeichnet die Änderungsvorgänge an der Master-Datenbank in Echtzeit im Binärprotokoll auf und überträgt das Binärprotokoll zur Wiedergabe an die Slave-Datenbank, wodurch die Datenkonsistenz zwischen der Master- und der Slave-Datenbank sichergestellt wird. In einer Clusterumgebung können wir Datenredundanz und -erweiterung erreichen, indem wir mehrere Slave-Bibliotheken auf verschiedenen Servern bereitstellen.

2. Bereitstellung der Clusterumgebung

  1. Hauptdatenbankkonfiguration
    Zuerst müssen wir die MySQL-Hauptdatenbank auf einem Server erstellen. Gehen Sie davon aus, dass das von uns verwendete Betriebssystem Linux und die Datenbankversion MySQL 5.7 ist. Im Folgenden sind einige häufig verwendete Hauptbibliothekskonfigurationsparameter aufgeführt:

[mysqld]
server-id=1
log_bin=mysql-bin
binlog_format=row

  1. Slave-Bibliothekskonfiguration
    Erstellen Sie eine MySQL-Slave-Bibliothek auf anderen Servern. Es ist zu beachten, dass die Server-ID der Slave-Datenbank eindeutig sein und sich von der Master-Datenbank unterscheiden muss. Das Folgende ist eine Beispielkonfiguration einer Slave-Bibliothek:

[mysqld]
server-id=2
relay_log=mysql-relay-bin
read_only=1

3. Aufbau der Clusterumgebung

  1. Einstellungen der Hauptbibliothek
    Im Master der Bibliothek müssen wir einen Benutzer zum Kopieren erstellen und ihm die entsprechenden Berechtigungen erteilen. Gehen Sie davon aus, dass der von uns erstellte Benutzername „replication“ lautet und das Kennwort 123456 lautet. Der entsprechende SQL-Befehl lautet wie folgt:

CREATE USER 'replication'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON . TO 'replication' @'%';

  1. Slave-Bibliothekseinstellungen
    Auf der Slave-Bibliothek müssen wir sie so konfigurieren, dass sie zur Datenreplikation eine Verbindung zur Hauptbibliothek herstellt. Angenommen, die IP-Adresse der Hauptdatenbank ist 192.168.1.100, der Benutzername ist Replikation, das Passwort ist 123456 und die ID der Slave-Datenbank ist 2. Der entsprechende SQL-Befehl lautet wie folgt:

CHANGE MASTER TO
MASTER_HOST='192.168.1.100',
MASTER_USER='Replikation',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=123456;

  1. Replikation starten
    Nachdem die Slave-Bibliothek eingerichtet ist Nach dem Start müssen wir die Replikationsfunktion starten. Führen Sie zunächst den folgenden Befehl aus, um die Replikation zu starten:

START SLAVE;

Dann überprüfen Sie den Replikationsstatus mit dem folgenden Befehl:

SHOW SLAVE STATUSG;

Wenn sowohl „Slave_IO_Running“ als auch „Slave_SQL_Running“ im angezeigten Inhalt sind „Ja“, das bedeutet, dass die Replikation normal läuft.

4. Anwendungsfälle: Datenredundanz und -erweiterung
In einer Clusterumgebung können wir Lese- und Schreibanforderungen an mehrere Slave-Bibliotheken verteilen, um Datenredundanz und -erweiterung zu erreichen. Das Folgende ist ein einfacher Anwendungsfall, um die Auswirkung von Datenredundanz und -erweiterung zu demonstrieren.

  1. Testtabelle erstellen
    Erstellen Sie eine Testtabelle in der Hauptdatenbank, um Benutzerinformationen zu speichern.

CREATE TABLE user (user (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age INT(3) NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

  1. 插入测试数据
    在主库上插入一些测试数据。

INSERT INTO user (name, age id INT(11) NOT NULL AUTO_INCREMENT,

name VARCHAR(20) NOT NULL,
    age INT(3) NOT NULL,
  1. PRIMARY KEY (id)
    ) ENGINE=INNODB DEFAULT CHARSET=utf8;

Testdaten einfügen
Einige Tests in die Hauptbibliothek einfügen Daten.

INSERT INTO user (name, age) VALUES ('Alice', 25), ('Bob', 30), ( 'Chris', 35);

Daten abfragen

In der Anwendung können wir Leseanfragen an jede Slave-Bibliothek senden. Angenommen, unser Anwendungsserver verfügt über zwei Slave-Bibliotheken, deren IP-Adressen 192.168.1.101 und 192.168.1.102 sind. Wir können Leseanforderungen über das folgende Codebeispiel senden:

import java.sql.Connection;
import java.sql. DriverManager;

import java.sql.ResultSet;🎜import java.sql.Statement;🎜🎜public class ReadRequestDemo {🎜
public static void main(String[] args) {
    String url = "jdbc:mysql://192.168.1.101:3306/test";
    String username = "username";
    String password = "password";

    try {
        Connection conn = DriverManager.getConnection(url, username, password);
        String sql = "SELECT * FROM user";
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery(sql);

        while (rs.next()) {
            int id = rs.getInt("id");
            String name = rs.getString("name");
            int age = rs.getInt("age");
            System.out.println("id=" + id + ", name=" + name + ", age=" + age);
        }

        rs.close();
        stmt.close();
        conn.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
🎜}🎜🎜Anhand des obigen Codebeispiels können wir sehen, dass die Slave-Bibliothek die in die Hauptbibliothek eingefügten Testdaten zurückgibt . Da wir mehrere Slave-Bibliotheken konfiguriert haben, können Leseanforderungen auf verschiedene Slave-Bibliotheken verteilt werden, wodurch Datenredundanz und -erweiterung erreicht werden. 🎜🎜Fazit: 🎜Im Anwendungsfall der MySQL-Master-Slave-Replikationstechnologie in einer Clusterumgebung erreichen wir Datenredundanz und -erweiterung durch den Aufbau einer Master-Datenbank und mehrerer Slave-Datenbanken. Durch angemessene Konfiguration und Optimierung können die Parallelitätsleistung und die Skalierbarkeit des Systems verbessert werden. Gleichzeitig kann die Master-Slave-Replikationstechnologie auch Hochverfügbarkeits- und Disaster-Recovery-Funktionen für Daten bereitstellen. Für Anwendungsszenarien, die eine große Anzahl gleichzeitiger Lesevorgänge verarbeiten müssen, ist die MySQL-Master-Slave-Replikationstechnologie eine erwägenswerte Lösung. 🎜

Das obige ist der detaillierte Inhalt vonDatenredundanz und -erweiterung erreichen: Anwendungsfälle der MySQL-Master-Slave-Replikationstechnologie in Clusterumgebungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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