Maison base de données tutoriel mysql Réaliser la redondance et l'expansion des données : cas d'application de la technologie de réplication maître-esclave MySQL dans les environnements de cluster

Réaliser la redondance et l'expansion des données : cas d'application de la technologie de réplication maître-esclave MySQL dans les environnements de cluster

Sep 08, 2023 pm 04:36 PM
主从复制 数据冗余 Environnement de cluster

Réaliser la redondance et lexpansion des données : cas dapplication de la technologie de réplication maître-esclave MySQL dans les environnements de cluster

Réalisation de la redondance et de l'expansion des données : cas d'application de la technologie de réplication maître-esclave MySQL dans un environnement de cluster

Introduction :
Avec le développement d'Internet, la quantité croissante de données et le nombre croissant d'utilisateurs, les standards traditionnels Les bases de données à elles seules ne sont plus en mesure de répondre aux besoins de haute concurrence et de haute disponibilité. Dans ce contexte, les bases de données distribuées sont devenues l’une des solutions les plus appréciées. En tant que l'une des bases de données relationnelles les plus couramment utilisées, la technologie de réplication maître-esclave de MySQL a également reçu une grande attention dans les bases de données distribuées. Cet article présentera les cas d'application de la technologie de réplication maître-esclave MySQL pour obtenir la redondance et l'expansion des données dans un environnement de cluster, et fournira des exemples de code correspondants.

1. Introduction à la technologie de réplication maître-esclave MySQL
La technologie de réplication maître-esclave MySQL est une méthode de réplication de données basée sur des journaux binaires. Il enregistre les opérations de modification sur la base de données maître dans le journal binaire en temps réel et transmet le journal binaire à la base de données esclave pour relecture, garantissant ainsi la cohérence des données entre les bases de données maître et esclave. Dans un environnement de cluster, nous pouvons réaliser la redondance et l'expansion des données en déployant plusieurs bibliothèques esclaves sur différents serveurs.

2. Déploiement de l'environnement de cluster

  1. Configuration de la base de données principale
    Tout d'abord, nous devons construire la base de données principale MySQL sur un serveur. Supposons que le système d'exploitation que nous utilisons est Linux et que la version de la base de données est MySQL 5.7. Voici quelques paramètres de configuration de la bibliothèque principale couramment utilisés :

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

  1. Configuration de la bibliothèque esclave
    Créez une bibliothèque esclave MySQL sur d'autres serveurs. Il est à noter que l'ID du serveur de la base de données esclave doit être unique et différent de celui de la base de données maître. Voici un exemple de configuration d'une bibliothèque esclave :

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

Construction de l'environnement de cluster

  1. Paramètres de la bibliothèque principale
    . Dans le master Sur la bibliothèque, nous devons créer un utilisateur pour la copie et lui donner les autorisations correspondantes. Supposons que le nom d'utilisateur que nous avons créé est réplication et que le mot de passe est 123456. La commande SQL correspondante est la suivante :

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

  1. Paramètres de la bibliothèque esclave
    Sur la bibliothèque esclave, nous devons la configurer pour se connecter à la bibliothèque principale pour la réplication des données. Supposons que l'adresse IP de la base de données principale est 192.168.1.100, le nom d'utilisateur est réplication, le mot de passe est 123456 et l'ID de la base de données esclave est 2. La commande SQL correspondante est la suivante :

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

  1. Démarrer la réplication
    Après la bibliothèque esclave est définie up, nous devons démarrer la fonction de réplication. Exécutez d'abord la commande suivante pour démarrer la réplication :

START SLAVE ;

Ensuite, vérifiez l'état de la réplication via la commande suivante :

SHOW SLAVE STATUSG;

Si "Slave_IO_Running" et "Slave_SQL_Running" dans le contenu affiché sont tous deux "Oui", cela signifie que la réplication s'exécute normalement.

4. Cas d'application : redondance et expansion des données
Dans un environnement de cluster, nous pouvons distribuer des requêtes de lecture et d'écriture à plusieurs bibliothèques esclaves pour obtenir la redondance et l'expansion des données. Ce qui suit est un cas d’application simple pour démontrer l’effet de la redondance et de l’expansion des données.

  1. Créer une table de test
    Créez une table de test sur la base de données principale pour stocker les informations utilisateur.

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;

Insérer les données de test
Insérer quelques tests sur la bibliothèque principale données.

INSÉRER DANS utilisateur (nom, âge) VALEURS ('Alice', 25), ('Bob', 30), ( 'Chris', 35 ans);

Requête de données

Dans l'application, nous pouvons envoyer des requêtes de lecture à n'importe quelle bibliothèque esclave. Supposons que notre serveur d'applications dispose de deux bibliothèques esclaves dont les adresses IP sont 192.168.1.101 et 192.168.1.102. Nous pouvons envoyer des requêtes de lecture via l'exemple de code suivant :

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

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();
    }
}
Copier après la connexion
🎜}🎜🎜Grâce à l'exemple de code ci-dessus, nous pouvons voir que la bibliothèque esclave renvoie les données de test insérées sur la bibliothèque principale . Puisque nous avons configuré plusieurs bibliothèques esclaves, les demandes de lecture peuvent être distribuées à différentes bibliothèques esclaves, réalisant ainsi la redondance et l'expansion des données. 🎜🎜Conclusion : 🎜Dans le cas d'application de la technologie de réplication maître-esclave MySQL dans un environnement de cluster, nous obtenons la redondance et l'expansion des données en créant une base de données maître et plusieurs bases de données esclaves. Grâce à une configuration et un réglage raisonnables, les performances de concurrence et l'évolutivité du système peuvent être améliorées. Dans le même temps, la technologie de réplication maître-esclave peut également fournir une haute disponibilité des données et des capacités de reprise après sinistre. Pour les scénarios d'application qui doivent gérer un grand nombre d'opérations de lecture simultanées, la technologie de réplication maître-esclave MySQL est une solution à considérer. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment implémenter la réplication maître-esclave de la base de données MySQL en PHP Comment implémenter la réplication maître-esclave de la base de données MySQL en PHP May 17, 2023 am 08:18 AM

Comment implémenter la réplication maître-esclave de la base de données MySQL en PHP

Création d'un cluster MySQL hautement disponible : guide des meilleures pratiques pour la réplication maître-esclave et l'équilibrage de charge Création d'un cluster MySQL hautement disponible : guide des meilleures pratiques pour la réplication maître-esclave et l'équilibrage de charge Sep 09, 2023 am 10:57 AM

Création d'un cluster MySQL hautement disponible : guide des meilleures pratiques pour la réplication maître-esclave et l'équilibrage de charge

Redondance des données Redis dans les applications PHP Redondance des données Redis dans les applications PHP May 17, 2023 pm 06:10 PM

Redondance des données Redis dans les applications PHP

Technologie de réplication maître-esclave de données dans MySQL Technologie de réplication maître-esclave de données dans MySQL Jun 14, 2023 pm 02:10 PM

Technologie de réplication maître-esclave de données dans MySQL

Explication détaillée de la fonction de réplication maître-esclave de Redis Explication détaillée de la fonction de réplication maître-esclave de Redis May 11, 2023 am 10:00 AM

Explication détaillée de la fonction de réplication maître-esclave de Redis

Comment configurer la réplication maître-esclave de la base de données MySQL ? Comment configurer la réplication maître-esclave de la base de données MySQL ? Jul 13, 2023 pm 10:05 PM

Comment configurer la réplication maître-esclave de la base de données MySQL ?

Réplication maître-esclave et architecture haute disponibilité dans MySQL Réplication maître-esclave et architecture haute disponibilité dans MySQL Sep 09, 2023 pm 12:03 PM

Réplication maître-esclave et architecture haute disponibilité dans MySQL

Équilibrage de charge et reprise après sinistre en mode cluster : analyse approfondie et pratique de la réplication maître-esclave MySQL Équilibrage de charge et reprise après sinistre en mode cluster : analyse approfondie et pratique de la réplication maître-esclave MySQL Sep 11, 2023 pm 05:51 PM

Équilibrage de charge et reprise après sinistre en mode cluster : analyse approfondie et pratique de la réplication maître-esclave MySQL

See all articles