Maison  >  Article  >  base de données  >  Introduction détaillée à la mise en œuvre du principe de synchronisation maître-esclave Mysql (images et textes)

Introduction détaillée à la mise en œuvre du principe de synchronisation maître-esclave Mysql (images et textes)

黄舟
黄舟original
2017-03-14 16:39:061456parcourir

Cet article présente principalement le principe de mise en œuvre de la synchronisation maître-esclave Mysql L'éditeur pense que c'est plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'oeil

1. Qu'est-ce que la synchronisation maître-esclave MySQL ?

Lorsque les données de la base de données maître changent, les modifications seront synchronisées avec la base de données esclave en temps réel.

2. Quels sont les avantages de la synchronisation maître-esclave ?

  • Agrandissez horizontalement la capacité de charge de la base de données.

  • Tolérance aux pannes, haute disponibilité. Basculement/Haute disponibilité

  • Sauvegarde des données.

3. Quel est le principe de la synchronisation maître-esclave ?

Tout d’abord, comprenons l’architecture maître-esclave.

Comme indiqué ci-dessous :

Qu'il s'agisse de supprimer, de mettre à jour, d'insérer ou de créer des fonctions, Procédure stockée , toutes les opérations sont sur le maître. Lorsque le maître effectue des opérations, l'esclave recevra rapidement ces opérations et effectuera la synchronisation.

Mais comment ce mécanisme est-il mis en œuvre ?

Sur la machine maître, les événements de synchronisation maître-esclave seront écrits dans un fichier journal spécial (journal binaire) ; sur la machine esclave, l'esclave lit les événements de synchronisation maître-esclave et lit en fonction de Si l'événement change, apportez les modifications correspondantes dans la bibliothèque esclave.

De cette façon, la synchronisation maître-esclave est obtenue !

Apprenons-en plus en détail.

3.1 Quels sont les événements de synchronisation maître-esclave

Comme mentionné ci-dessus :

Sur la machine maître, synchronisation maître-esclave ? les événements seront écrits dans un fichier journal spécial (binary-log)

Il existe trois formes d'événements de synchronisation maître-esclave : instruction, ligne et mixte.

  1. instruction : écrira les instructions SQL pour les opérations de base de données dans le binlog.

  2. ligne : chaque modification de données sera écrite dans le binlog.

  3. mixte : un mélange d'énoncé et de rangée. Mysql décide quand écrire le format d'instruction et quand écrire le binlog au format ligne.

3.2 Fonctionnement sur la machine maître

Lorsque les données sur la machine maître changent, l'événement (insertion, mise à jour, suppression) changera en fonction de l'écriture sur binlog de manière séquentielle.

thread de vidage du journal binaire

Lorsque l'esclave est connecté au maître, la machine maître ouvrira le fil de vidage du journal binaire pour l'esclave. Lorsque le journal binaire du maître change, le thread de vidage du journal binaire en informera l'esclave et enverra le contenu du journal binaire correspondant à l'esclave.

3.3 Fonctionnement sur la machine esclave

Lorsque la synchronisation maître-esclave est activée, 2 threads seront créés sur l'esclave.

  • Fil d'E/S. Ce thread est connecté à la machine maître et le thread de vidage du journal binaire sur la machine maître enverra le contenu du journal binaire au thread d'E/S. Après avoir reçu le contenu du journal binaire, le thread d'E/S écrit le contenu dans le journal de relais local.

  • Thème SQL. Ce thread lit le journal de relais écrit par le thread d'E/S. Et effectuez les opérations correspondantes sur la base de données esclave en fonction du contenu du journal de relais.

3.4 Comment afficher les discussions ci-dessus sur le maître et l'esclave ?

Utilisez la commande SHOW PROCESSLIST pour afficher.

Comme le montre la figure, affichez le thread de vidage du journal binaire sur la machine maître.

Comme le montre la figure, vérifiez les threads d'E/S et SQL sur la machine esclave.

4. Ayant tout dit, je peux le résumer en une seule image

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