Dans MySQL, maître-esclave fait référence à l'établissement de deux bases de données identiques, dont l'une est utilisée comme base de données principale et l'autre comme base de données secondaire, ce qui peut éviter la perte de données due aux temps d'arrêt du serveur de base de données et assurer la gestion des pannes. , séparation lecture-écriture et fonctions de sauvegarde.
L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.
Introduction au maître-esclave
Le soi-disant maître-esclave mysql consiste à établir deux bases de données identiques, dont l'une est la base de données principale et l'autre est généralement la base de données secondaire. dans les entreprises, le serveur de base de données qui stocke les données les plus importantes doit être configuré avec une configuration maître-esclave. Cela peut éviter la perte de données due aux temps d'arrêt du serveur de base de données et également garantir la qualité du service (vitesse de réponse du serveur) lorsqu'il y en a trop. entreprise, trop de données et trop de visiteurs. Il peut également fournir des fonctions telles que le basculement, la séparation lecture-écriture et la sauvegarde.
Forme maître-esclave
Un maître et un esclave
Réplication maître-maître : utilisée comme sauvegarde Lorsque le serveur maître tombe en panne, l'autre serveur maître prendra automatiquement le relais.
Un maître et plusieurs esclaves : utilisé pour réaliser la séparation de la lecture et de l'écriture. Il est utilisé lorsqu'il y a moins d'opérations d'écriture et plus d'opérations de lecture. Le serveur maître est utilisé pour implémenter les opérations d'écriture, et le serveur esclave est utilisé pour implémenter la lecture. opérations.
Plusieurs maîtres et un esclave : utilisé pour réaliser la séparation de la lecture et de l'écriture. Il est utilisé lorsqu'il y a de nombreuses opérations d'écriture et peu d'opérations de lecture. Le serveur maître est utilisé pour implémenter les opérations d'écriture, et le serveur esclave est utilisé pour implémenter la lecture. opérations.
Maître-esclave traditionnel
La réplication maître-esclave traditionnelle est principalement une réplication basée sur l'emplacement des fichiers journaux binaires, le maître doit donc démarrer la journalisation binaire et établir un ID de serveur unique, et chaque serveur du groupe de réplication doit être configuré avec un ID de serveur unique. Si vous omettez l'ID du serveur (ou le définissez explicitement sur sa valeur par défaut de 0), le maître rejettera toute connexion de l'esclave.
gtid maître-esclave
Une des nouvelles fonctionnalités de MySQL 5.6, le Global Transaction Identifier (GTID) est un identifiant unique créé et associé à chaque transaction validée sur le serveur source (maître). Cet identifiant est non seulement unique, mais également unique sur tous les serveurs d'une configuration de réplication donnée. Il existe un mappage un à un entre toutes les transactions et tous les GTID. Il est composé de l'ID du serveur et de l'ID de la transaction. Cet ID de transaction global est non seulement unique sur le serveur d'origine, mais également unique sur tous les serveurs MySQL ayant une relation maître-esclave. C'est précisément grâce à cette fonctionnalité que la réplication maître-esclave de MySQL devient plus simple et que la cohérence de la base de données est plus fiable. Un GTID n'est exécuté qu'une seule fois sur un serveur pour éviter la confusion des données ou l'incohérence maître-esclave causée par une exécution répétée.
Principe de la réplication maître-esclave
Workflow de réplication maître-esclave : la bibliothèque principale enregistre toutes les opérations d'écriture de l'utilisateur (à l'exception des ajouts, suppressions, modifications et vérifications) dans le journal binlog et génère un thread de vidage du journal, et la bibliothèque esclave génère des threads d'E/S et SQL, le thread d'E/S de la bibliothèque esclave envoie une requête sous la forme d'un flux d'E/S au thread de dump de journal de la bibliothèque principale. envoie le journal binlog après avoir reçu la demande du thread d'E/S de la bibliothèque esclave. À la bibliothèque esclave, le thread d'E/S de la bibliothèque esclave reçoit le journal binlog et l'écrit dans le fichier journal de relais (journal de relais). Ensuite, le thread SQL de la bibliothèque esclave analyse le journal dans le fichier journal du relais dans un script SQL et l'exécute finalement. Le fichier de script SQL généré est utilisé pour réaliser des opérations maître-esclave cohérentes et obtenir la cohérence finale des données.
Apprentissage recommandé : Tutoriel vidéo mysql
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!