


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 PMRé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
- 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
- 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
- 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' @'%';
- 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;
- 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.
- 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;
- 插入测试数据
在主库上插入一些测试数据。
INSERT INTO user
(name
, age
id
INT(11) NOT NULL AUTO_INCREMENT,
name
VARCHAR(20) NOT NULL,- PRIMARY KEY (
id
)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
age
INT(3) NOT NULL,Insérer les données de test
Insérer quelques tests sur la bibliothèque principale données.
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.
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(); } }
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

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

Redondance des données Redis dans les applications PHP

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

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

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