Maison  >  Article  >  base de données  >  Comment réaliser la réplication et la synchronisation des données dans MySQL ?

Comment réaliser la réplication et la synchronisation des données dans MySQL ?

WBOY
WBOYoriginal
2023-07-29 08:24:402594parcourir

MySQL est actuellement l'un des systèmes de gestion de bases de données relationnelles les plus populaires. Il prend en charge la réplication et la synchronisation des données pour obtenir une haute disponibilité et une protection des données. Cet article présentera comment implémenter la réplication et la synchronisation des données dans MySQL et fournira quelques exemples de code.

1. Principes de base de la réplication des données MySQL
La réplication des données MySQL est réalisée en copiant les données d'une base de données vers une autre base de données. Il est basé sur le modèle de réplication maître-esclave, dans lequel une base de données agit en tant que serveur maître, responsable de la réception et du traitement de toutes les opérations d'écriture, tandis que d'autres bases de données agissent en tant que serveurs esclaves, chargés de demander et d'obtenir des mises à jour de données auprès du serveur maître. La réplication des données est réalisée en transférant le journal binaire du serveur maître vers le serveur esclave.

  1. Configurer le serveur maître
    Tout d'abord, nous devons activer la fonction de journal binaire sur le serveur maître. Ajoutez le contenu suivant au fichier de configuration my.cnf :

[mysqld]
server-id=1
log-bin=mysql-bin

où server-id est l'identifiant unique du serveur principal, et log- bin spécifie le nom du fichier journal binaire.

Ensuite, redémarrez le service MySQL pour que la configuration prenne effet.

  1. Configurer le serveur esclave
    Ensuite, nous devons configurer la réplication sur le serveur esclave. Ajoutez le contenu suivant au fichier de configuration my.cnf :

[mysqld]
server-id=2
relay-log=mysql-relay-bin
log-slave-updates=1

d'où provient l'ID du serveur L'identifiant unique du serveur, relay-log spécifie le nom du fichier journal de relais et log-slave-updates indique si le serveur esclave enregistre les journaux binaires.

Ensuite, redémarrez le service MySQL pour que la configuration prenne effet.

  1. Établir un canal de réplication
    Créez un utilisateur dédié pour la réplication sur le serveur maître et autorisez-le :

CRÉER UN UTILISATEUR 'réplication'@'%' IDENTIFIÉ PAR 'mot de passe';
ACCORDER UN ESCLAVE DE RÉPLICATION SUR À '. replication'@'%';

Ensuite, obtenez le nom et l'emplacement du fichier journal binaire sur le serveur maître via la commande suivante :

SHOW MASTER STATUS;

Exécutez la commande suivante sur le serveur esclave pour établir un canal de réplication :

CHANGE MASTER TO MASTER_HOST='IP du serveur principal', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='Nom du fichier journal binaire', MASTER_LOG_POS=location;

Ensuite, démarrez la fonction de réplication du serveur esclave :

START SLAVE ;

2. Comment implémenter la synchronisation des données MySQL

La synchronisation des données MySQL fait référence au maintien de la cohérence des données entre plusieurs bases de données pour garantir le temps réel et la cohérence des données. Ce qui suit présente plusieurs méthodes courantes de mise en œuvre de la synchronisation des données.

    Synchronisation des données basée sur binlog
  1. Le journal binaire de MySQL enregistre toutes les opérations d'écriture dans la base de données. Nous pouvons utiliser le journal binaire pour réaliser la synchronisation des données. Les étapes spécifiques sont les suivantes :
(1) Activez la fonction de journal binaire sur le serveur maître et configurez le format binlog sur ROW :

binlog_format=ROW

(2) Configurez la réplication sur le serveur esclave et utilisez le CHANGEMENT Commande MASTER pour établir un canal de réplication et démarrer la réplication.

(3) Créez un déclencheur sur le serveur esclave pour synchroniser les données lorsque les données sur le serveur maître changent.

DELIMITER $$

CREATE TRIGGER sync_data AFTER INSERT ON table name FOR EACH ROW
BEGIN
INSERT INTO table name VALUES (NEW.Field 1, NEW.Field 2, ...);
END$$
DELIMITER ;

Lorsque les données sur le serveur maître changent, le déclencheur exécutera l'opération INSERT correspondante sur le serveur esclave pour réaliser la synchronisation des données.

    Synchronisation des données basée sur la colonne d'incrémentation automatique de clé primaire
  1. Lors de la synchronisation des données entre plusieurs bases de données, des conflits de clés primaires sont souvent rencontrés. Une solution consiste à utiliser des colonnes d’auto-incrémentation de clé primaire pour garantir que les clés primaires ne sont pas dupliquées entre différentes bases de données.
Les étapes spécifiques sont les suivantes :

(1) Lors de la création d'une table dans chaque base de données, définissez le champ de clé primaire sur une colonne à incrémentation automatique.

(2) Lors de l'insertion de données dans chaque base de données, il n'est pas nécessaire de spécifier la valeur du champ de clé primaire, la base de données générera automatiquement une valeur de clé primaire unique pour celle-ci.

(3) Synchronisez les données de chaque base de données avec d'autres bases de données via des tâches planifiées ou des déclencheurs.

Exemple de code :

Nom de la table CREATE TABLE (

id INT AUTO_INCREMENT PRIMARY KEY,
Champ 1 VARCHAR(50),
Champ 2 VARCHAR(50)
);

INSERT INTO nom de la table (Champ 1, Champ 2) VALEURS (« Données 1 », « Données 2 ») ;

    Synchronisation des données basée sur des outils
  1. En plus des méthodes de synchronisation des données basées sur les colonnes binlog et d'auto-incrémentation de clé primaire, il existe également des outils tiers qui peuvent réaliser Synchronisation des données MySQL, comme Maxwell et Debezium et al. Ces outils peuvent analyser le journal binaire de la base de données et le convertir dans un format lisible pour réaliser la synchronisation des données.
Il n'y a pas encore d'exemples de code. Veuillez vous référer à la documentation officielle et aux exemples d'utilisation de l'outil.

Résumé :

Cet article présente les méthodes permettant de réaliser la réplication et la synchronisation des données dans MySQL, ainsi que des exemples de code associés. Grâce à la réplication et à la synchronisation des données, nous pouvons atteindre une haute disponibilité de la base de données et de la protection des données, et améliorer la stabilité et la fiabilité du système. Dans le même temps, le choix de méthodes et d'outils appropriés en fonction des besoins réels peut mieux répondre aux besoins de l'entreprise.

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