Table des matières
Description du contexte
Introduction à l'architecture à haute disponibilité
Analyse technique de MMM
Architecture maître-esclave MySQL
Présentation du cluster MySQL
Maison base de données tutoriel mysql Analysons ensemble la technologie d'architecture à haute disponibilité de MySQL

Analysons ensemble la technologie d'architecture à haute disponibilité de MySQL

Feb 22, 2022 pm 06:12 PM
mysql

Cet article vous apporte des connaissances pertinentes sur l'analyse technique de l'architecture mysql moyenne et haute disponibilité. Il présente principalement l'analyse technique de MMM, de l'architecture maître-esclave MySQL et des problèmes liés au cluster.

Analysons ensemble la technologie d'architecture à haute disponibilité de MySQL

Description du contexte

Avec le développement des technologies de l'information, les entreprises s'appuient de plus en plus sur la gestion de l'information. Les informations sur les données de diverses applications métier sont principalement stockées dans des bases de données. Les entreprises ont des exigences croissantes en matière de continuité d'accès à ces données. Afin d'éviter diverses pertes dues à l'interruption des données, la haute disponibilité des bases de données est devenue une priorité absolue dans la construction des informations d'entreprise. Dans le même temps, les entreprises clés dans des secteurs ou des domaines liés à l'économie nationale et aux moyens de subsistance de la population, tels que les télécommunications, la finance, l'énergie et l'industrie militaire, nécessitent une haute disponibilité pour le stockage des données clés. Le fonctionnement du système de données doit être garanti 24 heures sur 24. 7 pour éviter la perte et les dommages de données. Cliquez pour obtenir le matériel d'apprentissage de la programmation

Introduction à l'architecture à haute disponibilité

L'architecture à haute disponibilité est fondamentalement la norme pour les services Internet. Les services d'application et les services de base de données doivent être hautement disponibles. Pour un système, peut inclure de nombreux modules, tels que des applications frontales, des caches, des bases de données, des recherches, des files d'attente de messages, etc. Chaque module doit être hautement disponible pour garantir la haute disponibilité de l'ensemble du système . Pour les services de bases de données, la haute disponibilité peut être plus complexe. La disponibilité des services pour les utilisateurs nécessite non seulement des garanties d'accès, mais également d'exactitude. Par conséquent, la haute disponibilité des bases de données nécessite davantage d'authentification.

Classification de l'architecture haute disponibilité MySQL

  • MySQL implémente MMM pour la haute disponibilité
  • MySQL implémente la haute disponibilité MHA
  • MySQL implémente l'architecture maître-esclave haute disponibilité
  • MySQL implémente le mode Cluster haute disponibilité

Analyse technique de MMM

MMM (Master-Master replication manager for MySQL) est un ensemble de programmes de script qui prennent en charge le basculement double maître et la gestion quotidienne double maître.

  • MMM est développé en langage Perl et est principalement utilisé pour surveiller et gérer la réplication MySQL Master-Master (double maître). Bien qu'elle soit appelée réplication à double maître, l'entreprise n'autorise l'écriture que sur un seul maître en même temps. , et l'autre Le maître alternatif fournit des services de lecture partielle pour accélérer le préchauffage du maître alternatif au moment de la commutation principal-maître. L'extrémité de surveillance de MMM fournira plusieurs IP virtuelles (vip), y compris une VIP inscriptible. plusieurs VIP lisibles, via la gestion de supervision, seront liés au mysql disponible. Lorsqu'un certain mysql tombe en panne, le vip sera migré vers un autre mysql.

  • MMM, d'une part, implémente la fonction de basculement et, d'autre part, ses scripts d'outils internes supplémentaires peuvent également réaliser l'équilibrage de charge en lecture de plusieurs esclaves.
  • Ce package peut également effectuer un équilibrage de charge en lecture sur n'importe quel nombre de serveurs esclaves sur la base d'une configuration maître-esclave standard, vous pouvez donc l'utiliser pour démarrer des IP virtuelles sur un groupe de serveurs répliqués. sont des scripts pour implémenter des fonctions de sauvegarde et de resynchronisation des données entre les nœuds.

  • Analyse des composants de base MMM

mmm_mond : Processus de surveillance, responsable de tous les travaux de surveillance, décidant et traitant toutes les activités de rôle de nœud. Le script doit donc être exécuté sur un superviseur.

mmm_agentd : le processus d'agent exécuté sur chaque serveur msql termine le travail de sonde de surveillance et effectue des paramètres de service à distance simples. Ce script doit être exécuté sur la machine surveillée.
  • mmm_control : Un script simple qui fournit des commandes pour gérer mmm_mond.
  • Principe de mise en œuvre de base de MMM

MMM fournit des moyens automatiques et manuels de supprimer l'adresse IP virtuelle d'un serveur avec un délai de réplication élevé dans un groupe de serveurs. En même temps, il peut également sauvegarder les données et réaliser la réplication. entre deux nœuds Synchronisation des données, etc.

MySQL lui-même ne fournit pas de solution de basculement de réplication. Le basculement du serveur peut être réalisé via la solution MMM, permettant ainsi d'obtenir une haute disponibilité de MySQL.

Scénarios d'utilisation de MMM

Étant donné que MMM ne peut pas garantir complètement la cohérence des données, MMM convient aux scénarios dans lesquels les exigences de cohérence des données ne sont pas très élevées, mais vous souhaitez garantir au maximum la disponibilité de l'entreprise. Pour les entreprises qui ont des exigences élevées en matière de cohérence des données, il est fortement déconseillé d'utiliser une architecture à haute disponibilité comme MMM.

Le projet MMM vient de Google : code.google.com/p/mysql-mas…

Le site officiel est : mysql-mmm.org
  • Introduction au MHA
  • MHA (Master High Availability) est actuellement dans le domaine de la haute disponibilité MySQL Il s'agit d'une solution relativement mature. Elle a été développée par Youshimaton de la société japonaise DeNA (qui travaille actuellement chez Facebook). Il s'agit d'un excellent ensemble de logiciels à haute disponibilité pour le basculement et la promotion maître-esclave dans MySQL. environnement à haute disponibilité. Pendant le processus de basculement MySQL, MHA peut terminer automatiquement l'opération de basculement de la base de données dans un délai de 0 à 30 secondes, et pendant le processus de basculement, MHA peut garantir au maximum la cohérence des données pour atteindre une véritable haute disponibilité dans le sens.
  • MHA est un programme MySQL open source à haute disponibilité Lorsque MHA surveille la défaillance du nœud maître, il promouvra automatiquement le nœud esclave avec les dernières données pour devenir le nouveau nœud maître.

  • MHA obtiendra des informations supplémentaires d'autres nœuds pour éviter les problèmes de cohérence, c'est-à-dire que MHA obtiendra des informations sur les données d'autres nœuds esclaves et enverra les informations au nœud esclave le plus proche du nœud maître, de sorte que le nœud maître échoue. Le nœud esclave sera promu au nœud maître, et ce nœud esclave disposera de toutes les informations de données des autres nœuds esclaves.

  • MHA fournit également la fonction de commutation en ligne du nœud maître, c'est-à-dire la commutation du nœud maître/esclave à la demande.

Les composants de base de MHA

MHA se composent de deux parties : MHA Manager (nœud de gestion) et MHA Node (nœud de données).

MHA Manager peut être déployé sur une machine indépendante pour gérer plusieurs clusters maître-esclave, ou il peut être déployé sur un nœud esclave.

Principe de mise en œuvre de MHA

  • MHA Node s'exécute sur chaque serveur MySQL. MHA Manager détectera régulièrement le nœud maître dans le cluster, il peut automatiquement promouvoir l'esclave avec les dernières données vers le nouveau maître. redirigez tous les autres esclaves vers le nouveau maître. L'ensemble du processus de basculement est totalement transparent pour l'application.
  • Pendant le processus de basculement automatique de MHA, MHA essaie de sauvegarder le journal binaire du serveur principal en panne pour garantir que les données ne soient pas perdues au maximum, mais cela n'est pas toujours réalisable.
  • Par exemple, si le matériel du serveur principal tombe en panne ou n'est pas accessible via ssh, MHA ne peut pas enregistrer le journal binaire et ne fait que basculer et perdre les dernières données. Grâce à la réplication semi-synchrone de MySQL 5.5, vous pouvez réduire le risque de perte de données.
  • MHA peut être combiné avec la réplication semi-synchrone. Si un seul esclave a reçu le dernier journal binaire, MHA peut appliquer le dernier journal binaire à tous les autres serveurs esclaves, garantissant ainsi la cohérence des données de tous les nœuds.

Scénarios d'utilisation de MHA

Actuellement, MHA prend principalement en charge une architecture à un maître et à plusieurs esclaves.

  • Pour créer MHA, un cluster de réplication doit avoir au moins trois serveurs de base de données, un maître et deux esclaves, c'est-à-dire que l'un agit en tant que maître, l'autre en tant que maître de sauvegarde et l'autre en tant qu'esclave.

  • Comme au moins trois serveurs sont requis et en raison de considérations de coût de la machine, Taobao l'a également modifié sur cette base. Actuellement, Taobao TMHA prend déjà en charge un maître et un esclave.

  • Au niveau du code, MHA n'est qu'un ensemble de scripts Perl. Je pense donc qu'avec la force technique d'Alibaba, il n'est pas difficile de changer MHA pour prendre en charge un maître et un esclave.

Architecture maître-esclave MySQL

Ce type d'architecture est couramment utilisé par les startups, et il facilite également l'expansion ultérieure étape par étape

Caractéristiques de cette architecture

  1. Déploiement faible coût, rapide et pratique
  2. Séparation de la lecture et de l'écriture
  3. Cela peut également réduire la pression de lecture de la bibliothèque en ajoutant des bibliothèques esclaves à temps
  4. Point de défaillance unique de la bibliothèque principale
  5. Problèmes de cohérence des données (causés par des retards de synchronisation)

  1. Le logiciel haute disponibilité peut utiliser Heartbeat, qui est entièrement responsable du VIP, des données et de la gestion du service DRBD
  2. peut basculer automatiquement et rapidement après la panne du maître, et la bibliothèque esclave peut toujours synchroniser les données avec la nouvelle bibliothèque maître via VIP
  3. La bibliothèque esclave prend également en charge la séparation lecture-écriture, qui peut être implémentée à l'aide d'un middleware ou de programmes

Présentation du cluster MySQL

La technologie MySQL Cluster fournit des fonctionnalités de redondance pour MySQL dans les systèmes distribués, améliore la sécurité et peut améliorer le système. fiabilité et validité des données. Le cluster MySQL nécessite un ensemble d'ordinateurs, chaque ordinateur peut être compris comme un nœud et les fonctions de ces nœuds sont différentes. Le cluster MySQL peut être divisé en trois types de nœuds selon leurs fonctions : nœuds de gestion, nœuds de données et nœuds SQL. Un ordinateur dans le cluster peut être un certain nœud, ou un ensemble de deux ou trois types de nœuds. Ces nœuds sont combinés pour fournir une gestion des données de cluster hautement fiable et performante pour les applications.

Actuellement, les données d'entreprise ont un volume de données élevé. augmentant, donc les exigences pour MySQL augmentent encore. La plupart des solutions à haute disponibilité précédentes présentent généralement certains défauts, comme la solution de réplication MySQL. Il faut un certain temps pour détecter si le maître est vivant, et un certain temps. Un certain temps est nécessaire si une commutation maître-esclave est requise, la haute disponibilité repose donc fortement sur des logiciels de surveillance et des outils de gestion automatisés. Avec le développement continu de MySQL Cluster, ses performances et sa haute disponibilité ont finalement été considérablement améliorées.

Concept de base de MySQL Cluster

MySQL Cluster est simplement une technologie de cluster MySQL, composée d'un groupe d'ordinateurs. stocker un ou plusieurs nœuds, y compris des serveurs MySQL, des nœuds de données du cluster DNB, la gestion d'autres nœuds et des programmes d'accès aux données spécialisés. Ensemble, ces nœuds peuvent améliorer les performances et la haute disponibilité des applications et la gestion évolutive des données du cluster ;

Le processus d'accès du cluster MySQL ressemble généralement à ceci. Les applications utilisent généralement un certain algorithme d'équilibrage de charge pour distribuer l'accès aux données aux différents nœuds SQL. Les nœuds SQL effectuent l'accès aux données aux nœuds de données et renvoient les résultats des données à partir des nœuds de données. nœud simplement Configurer et gérer les nœuds SQL et les nœuds de données ;

Comprendre les nœuds du cluster MySQL

Le cluster MySQL peut être divisé en 3 types de nœuds selon les types de nœuds, à savoir les nœuds de gestion, les nœuds SQL et les nœuds de données. Tous ces nœuds constituent un nœud. Le système de cluster MySQL complet, en fait, les données sont stockées dans le moteur de stockage du serveur de stockage NDB, la structure des tables est stockée dans le serveur MySQL, l'application accède aux données via le serveur MySQL et le serveur de gestion de cluster gère le Stockage NDB via l'outil de gestion ndb_mgmd Server ;

【1. Nœud de gestion】

Le nœud de gestion est principalement utilisé pour gérer d'autres nœuds. Le fichier config.ini est généralement configuré pour configurer le nombre de copies à conserver dans le cluster, la quantité de mémoire à allouer aux données et aux index sur chaque nœud de données, l'adresse IP et le chemin du disque pour enregistrer les données sur chaque nœud de données ;

Les nœuds de gestion gèrent généralement les fichiers de configuration du cluster et les journaux du cluster. Chaque nœud du cluster récupère les informations de configuration du serveur de gestion et demande un moyen de déterminer l'emplacement du serveur de gestion. Si un nouvel événement se produit dans le nœud, le nœud transmettra les informations de ce type d'événement au serveur de gestion et écrira ces informations dans le journal du cluster ;

Généralement, au moins un nœud de gestion est requis dans le système MySQL Cluster ; De plus, comme le nœud de données et le nœud SQL doivent lire les informations de configuration du cluster avant de démarrer, le nœud de gestion est généralement démarré en premier

【Nœud 2.SQL】

Le nœud SQL est simplement mysqld ; serveur, application Les nœuds de données ne sont pas accessibles directement, les données ne peuvent être renvoyées que via les nœuds SQL. Tout nœud SQL est connecté à tous les nœuds de stockage. Ainsi, lorsqu'un nœud de stockage tombe en panne, le nœud SQL peut transférer la demande vers un autre nœud de stockage pour exécution. De manière générale, plus il y a de nœuds SQL, mieux c'est. Plus il y a de nœuds SQL, plus la charge assignée à chaque nœud SQL est faible et meilleures sont les performances globales du système

【3. Stockez les données dans le cluster. Le cluster MySQL réplique les données entre chaque nœud de données. Si un nœud tombe en panne, il y aura toujours un autre nœud de données pour stocker les données.

Habituellement, ces trois nœuds logiques différents peuvent être distribués sur différents ordinateurs. le cluster dispose d'au moins 3 ordinateurs. Afin de garantir que le service du cluster peut être maintenu normalement, le nœud de gestion est généralement placé sur un hôte séparé

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

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)

MySQL: Concepts simples pour l'apprentissage facile MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Comment ouvrir phpmyadmin Comment ouvrir phpmyadmin Apr 10, 2025 pm 10:51 PM

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

MySQL: une introduction à la base de données la plus populaire au monde MySQL: une introduction à la base de données la plus populaire au monde Apr 12, 2025 am 12:18 AM

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

Pourquoi utiliser MySQL? Avantages et avantages Pourquoi utiliser MySQL? Avantages et avantages Apr 12, 2025 am 12:17 AM

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Comment utiliser un seul fileté redis Comment utiliser un seul fileté redis Apr 10, 2025 pm 07:12 PM

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

MySQL et SQL: Compétences essentielles pour les développeurs MySQL et SQL: Compétences essentielles pour les développeurs Apr 10, 2025 am 09:30 AM

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

Place de MySQL: bases de données et programmation Place de MySQL: bases de données et programmation Apr 13, 2025 am 12:18 AM

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

Moniteur Disd Droplet avec service d'exportateur Redis Moniteur Disd Droplet avec service d'exportateur Redis Apr 10, 2025 pm 01:36 PM

La surveillance efficace des bases de données Redis est essentielle pour maintenir des performances optimales, identifier les goulots d'étranglement potentiels et assurer la fiabilité globale du système. Le service Redis Exporter est un utilitaire puissant conçu pour surveiller les bases de données Redis à l'aide de Prometheus. Ce didacticiel vous guidera à travers la configuration et la configuration complètes du service Redis Exportateur, en vous garantissant de créer des solutions de surveillance de manière transparente. En étudiant ce tutoriel, vous réaliserez les paramètres de surveillance entièrement opérationnels

See all articles