Guides

Réplication MySQL : explication des types de réplication des données et des méthodes de configuration

September 4, 2023
Cet article explore les idées fondamentales de la réplication de base de données MySQL, ainsi que ses principales fonctionnalités de manière complète. Vous découvrirez les différentes méthodes d'exécution de la réplication de base de données MySQL.

Vous pouvez créer et gérer des copies dupliquées d'une base de données sur d'autres serveurs à l'aide du puissant mécanisme de réplication de base de données MySQL. Il permet la synchronisation des données en temps réel ou quasi en temps réel entre une base de données principale et une ou plusieurs bases de données esclaves. Cette méthode présente de nombreux avantages, notamment de meilleures performances, une meilleure préparation aux catastrophes et une disponibilité accrue des données. La réplication MySQL offre une méthode fiable pour la distribution des données, l'équilibrage de charge et la protection contre les pertes de données en utilisant une architecture maître-esclave, dans laquelle la base de données principale agit comme source de vérité et les bases de données esclaves dupliquent les modifications apportées par la base principale. Cette rubrique d'introduction explore les principes de la réplication de bases de données MySQL, en examinant ses éléments essentiels, ses fonctionnalités et ses avantages pour les tactiques de gestion des données contemporaines.

Cet article explore les idées fondamentales de la réplication de base de données MySQL, ainsi que ses principales fonctionnalités de manière complète. Vous découvrirez les différentes méthodes d'exécution de la réplication de base de données MySQL.

Qu'est-ce que MySQL ?

L'un des systèmes de gestion de base de données relationnelle (SGBDR) open source les plus populaires pour organiser et stocker des données structurées est MySQL. Il a été initialement créé par MySQL AB, et Oracle Corporation en est désormais propriétaire. La fiabilité, les performances et la facilité d'utilisation de MySQL sont bien connues. Il est largement utilisé pour de nombreuses applications différentes, allant des sites Web et programmes modestes aux grands systèmes d'entreprise.

Principales fonctionnalités de MySQL

  • Base de données relationnelle Open Source : MySQL est un logiciel open source, ce qui signifie qu'il est librement disponible pour utilisation, modification et distribution. MySQL suit le modèle relationnel, permettant de stocker les données dans des tables avec des colonnes et des types de données prédéfinis. MySQL dispose d'une communauté importante et active d'utilisateurs et de développeurs, fournissant des ressources, des forums et de la documentation pour obtenir de l'aide.
  • Langage de requête structuré (SQL) : MySQL utilise SQL pour définir, interroger et manipuler les données. Le SQL est un langage standard utilisé dans de nombreux systèmes de bases de données relationnelles. MySQL propose un large éventail de types de données, notamment numériques, chaînes, date et heure, binaires, spatiales, etc. MySQL prend en charge les déclencheurs (actions automatisées basées sur les modifications de données) et les procédures stockées (routines de base de données prédéfinies pouvant être exécutées).
  • Conformité ACID : MySQL prend en charge les propriétés ACID (atomicité, cohérence, isolation, durabilité). Lorsque de nombreux utilisateurs ou processus accèdent et modifient simultanément les mêmes données, les fonctionnalités ACID sont très importantes pour maintenir la fiabilité et l'intégrité des données dans les systèmes de base de données. Ces caractéristiques garantissent que la base de données continue de constituer une source d'informations fiable pour les applications et les utilisateurs en aidant à conserver l'exactitude des données même en cas d'événements imprévus ou de pannes.
  • Haute performance: MySQL est connu pour ses opérations de lecture et d'écriture rapides. Il utilise diverses techniques d'optimisation pour garantir une récupération et un stockage efficaces des données. MySQL prend en charge l'évolutivité horizontale et verticale. Il peut être étendu en ajoutant des serveurs supplémentaires (réplication) ou étendu en mettant à niveau le matériel. MySQL prend en charge la réplication maître-esclave, ce qui permet de copier les données sur plusieurs serveurs à des fins de redondance et d'amélioration des performances de lecture.
  • Cloisonnement et rangement : MySQL permet de diviser les données en partitions plus petites pour une meilleure gestion et une optimisation des performances. MySQL propose différents moteurs de stockage aux fonctionnalités variées, notamment InnoDB (par défaut, prend en charge les transactions et les clés étrangères), MyISAM (pas de transactions, mais opérations de lecture rapides), MEMORY (pour stocker des données en mémoire), etc. MySQL fournit des outils pour créer des sauvegardes et restaurer des données, afin de garantir la disponibilité des données et la reprise après sinistre.
  • Recherche en texte intégral : MySQL fournit des fonctionnalités d'indexation et de recherche en texte intégral, permettant une recherche efficace dans de grandes données textuelles. MySQL prend en charge le stockage, l'indexation et l'interrogation de données JSON (JavaScript Object Notation), ce qui le rend adapté aux applications qui utilisent largement le JSON.
  • Compatibilité et sécurité : MySQL prend en charge l'authentification et l'autorisation des utilisateurs, permettant aux administrateurs de contrôler l'accès aux données et aux opérations. MySQL est disponible pour différentes plateformes, notamment Windows, Linux, macOS, etc. MySQL inclut des fonctionnalités permettant de travailler avec des données géospatiales, permettant aux applications de stocker et d'interroger des informations basées sur la localisation.

Voici quelques-unes des fonctionnalités clés qui font de MySQL un choix populaire auprès des développeurs, des entreprises et des organisations pour la gestion efficace des bases de données relationnelles.

Qu'est-ce que la réplication de base de données MySQL et comment fonctionne-t-elle ?

Les données d'une base de données MySQL (la base principale) sont transférées et synchronisées vers une ou plusieurs bases de données MySQL supplémentaires (les esclaves) via le processus de réplication de base de données MySQL. Il s'agit d'une méthode typique pour assurer la redondance des données, améliorer les performances en répartissant le trafic de lecture et faciliter les plans de sauvegarde et de restauration. Voici quelques avantages de la réplication de base de données MySQL.

  • Architecture maître-esclave : Au moins deux instances MySQL, une instance principale et une ou plusieurs instances esclaves, sont utilisées dans le processus de réplication de la base de données MySQL. La base de données principale, ou principale, est celle qui crée les modifications qui doivent être répliquées, et les bases de données secondaires, ou esclaves, sont celles qui reçoivent et implémentent ces modifications.
  • Journalisation binaire : Un journal binaire, qui est un enregistrement chronologique de toutes les modifications de données (insertions, mises à jour et suppressions), est conservé dans la base de données principale. Parfois, ce journal est appelé « binlog ».
  • Événements de réplication : Lorsqu'une modification est apportée à la base de données principale, elle est enregistrée dans le journal binaire en tant qu'événement de réplication. Chaque événement contient des informations sur le type d'opération effectuée et les données modifiées.
  • Fil de réplication : Chaque esclave se connecte au maître et démarre un thread de réplication. Ce thread lit les événements du journal binaire depuis le maître, les traite et applique les mêmes modifications à la copie locale des données de l'esclave.
  • Positionnement du journal: pour garder une trace des événements qui ont été répliqués, chaque esclave conserve un enregistrement du dernier événement traité dans le journal binaire du maître. C'est ce que l'on appelle le »position de réplication. »
  • Basculement et haute disponibilité : La réplication peut également être utilisée pour des scénarios de basculement. En cas de défaillance du maître, l'un des esclaves peut être promu au rang de nouveau maître, ce qui garantit un minimum de temps d'arrêt et de perte de données.

Flux de réplication de base de données MySQL :

  • Le master enregistre les modifications dans le journal binaire.
  • Chaque esclave se connecte au maître et demande des événements de réplication à partir de la dernière position traitée.
  • Le maître envoie les événements demandés à l'esclave.
  • Le thread de réplication de l'esclave traite et applique les événements dans l'ordre dans lequel ils ont été générés sur le master.
  • L'esclave met à jour sa position de réplication au fur et à mesure qu'il applique chaque événement avec succès.
  • L'esclave communique périodiquement avec le maître pour s'assurer qu'il est à jour et qu'il n'a pas pris de retard.

Types de données MYSQL

Il existe différents types de modes de réplication :

  • Réplication asynchrone : Dans cette méthode, les bases de données maître et esclave sont faiblement couplées. Le maître envoie des événements à l'esclave, mais celui-ci ne peut pas les appliquer immédiatement. Cela peut entraîner des incohérences dans les données si le maître tombe en panne avant que l'esclave n'ait appliqué tous les événements.
  • Réplication synchrone : Dans cette méthode, le maître attend que l'esclave accuse réception et applique avec succès chaque événement avant de valider les modifications localement. Cela garantit que les données de l'esclave sont toujours à jour avec celles du maître, mais cela peut avoir un impact sur les performances en raison de l'augmentation de la latence.
  • Réplication semi-synchrone : Un compromis entre réplication asynchrone et réplication synchrone. Le maître attend qu'au moins un esclave accuse réception d'un événement avant de valider la modification localement.

En résumé, la réplication de base de données MySQL est une méthode permettant de conserver des copies de données cohérentes sur plusieurs serveurs de base de données. Il s'agit d'une stratégie efficace pour améliorer les performances, la redondance des données et les capacités de reprise après sinistre dans un environnement MySQL.

Méthodes de configuration de la réplication de base de données MySQL

La configuration de la réplication de base de données MySQL est essentielle pour la redondance des données, la haute disponibilité et l'équilibrage de charge. Voici les étapes à suivre pour configurer la réplication de base de données MySQL à l'aide du modèle de réplication maître-esclave.

Méthode 1 : réplications de bases de données MySQL à l'aide d'une approche maître-esclave

La réplication de base de données MySQL selon l'approche maître-esclave implique la mise en place d'une base de données principale qui fait office de serveur principal servant de source de vérité, et d'une ou plusieurs bases de données esclaves ou serveurs esclaves qui répliquent les données du maître. Cette approche assure la redondance, répartit la charge et peut également être utilisée à des fins de sauvegarde. Avant de poursuivre, assurez-vous de bien comprendre MySQL, l'administration des bases de données et la gestion des serveurs. Voici un guide étape par étape pour effectuer une réplication de base de données MySQL en utilisant l'approche maître-esclave :

Étape 1 : Configuration du serveur de base de données principal

  • Installez MySQL: installez MySQL sur le serveur principal s'il n'est pas déjà installé.
  • Configurer Master: Dans le fichier de configuration MySQL (`my.cnf` ou `my.ini`), configurez les paramètres suivants :

identifiant du serveur = 1

log-bin = mysql-bin

binlog-do-db=nom_de_votre_base de données

ID du serveur doit être unique parmi tous les serveurs impliqués dans la réplication. Redémarrer MySQL : Redémarrez le serveur MySQL pour appliquer les modifications de configuration.

Étape 2 : Configuration du serveur de base de données esclave

  • Installez MySQL : Installez MySQL sur le ou les serveurs esclaves.
  • Configurer Slave: Dans le fichier de configuration MySQL de chaque esclave, configurez les paramètres suivants :

server-id=2 # Utiliser une valeur unique pour chaque esclave

replicate-do-db=nom_votre_base de données

Redémarrer MySQL : redémarrez le serveur MySQL sur chaque esclave.

Étape 3 : Création d'un utilisateur de réplication sur Master

Connectez-vous à la base de données principale en tant qu'utilisateur privilégié :

CRÉER UN UTILISATEUR 'replication_user'@'slave_ip' IDENTIFIÉ PAR UN « mot de passe » ;

ACCORDEZ L'ESCLAVE DE RÉPLICATION SUR *.* À 'replication_user'@'slave_ip' ;

PRIVILÈGES DE CHASSE D'EAU ;

Remplacer »slave_ip» avec l'adresse IP du serveur esclave et »mot de passe» avec un mot de passe fort.

Obtenir le statut de maître : Exécutez la commande suivante pour obtenir des informations sur la position du journal binaire principal :

AFFICHER LE STATUT DU MAÎTRE ;

Notez les valeurs de »Dossier» et »Poste».

Étape 4 : Configuration de la réplication esclave

Sur chaque esclave, exécutez la commande SQL suivante :

ARRÊTER L'ESCLAVE ;

CHANGEZ MASTER EN

master_host='IP_maître',

master_user='Utilisateur_réplication',

master_password='Mot de passe',

master_log_file='nom_du_fichier_master_log',

master_log_pos=Position_du_journal principal ;

DÉMARRER UN ESCLAVE ;

Remplacez « master_ip », « password », « 'master_log_file_name » et « master_log_position » par les valeurs appropriées. Ces valeurs doivent correspondre aux informations du maître obtenues à l'étape ci-dessus.

Étape 5 : Tester la réplication NADMonitor

Apportez des modifications à la base de données principale et vérifiez qu'elles sont répliquées sur le ou les esclaves. Sur le master, utilisez la commande SHOW MASTER STATUS pour surveiller la position du journal binaire. Sur chaque esclave, utilisez la commande SHOW SLAVE STATUS pour surveiller l'état de réplication et détecter les erreurs éventuelles.

Gérer les défaillances :

  • En cas d'échec d'un esclave, vous pouvez promouvoir un autre esclave pour qu'il devienne un nouveau maître.
  • En cas de défaillance du maître, promouvez l'un des esclaves comme nouveau maître, mettez à jour la configuration des autres esclaves pour qu'il pointe vers le nouveau maître et reconfigurez l'application pour se connecter au nouveau maître.

N'oubliez pas qu'il s'agit d'un guide simplifié et qu'il comporte de nombreuses autres considérations relatives à une configuration au niveau de la production, telles que la sécurité, les stratégies de sauvegarde, la gestion des conflits, etc. qui peuvent varier en fonction des systèmes et des environnements. Reportez-vous toujours à la documentation officielle de MySQL et demandez l'avis d'un expert pour les configurations complexes ou vous pouvez toujours opter pour un outil low-code comme Fivetran.

Méthode 2 : réplications de bases de données MySQL à l'aide de Fivetran

Le processus de configuration de la réplication de base de données MySQL implique la sélection d'une méthode de connexion, la configuration de la méthode choisie, le choix d'un mécanisme de synchronisation incrémentielle, la création d'une réplique de lecture si nécessaire, la création d'un utilisateur pour Fivetran et l'achèvement de la configuration Fivetran.

Étape 1 : Choisissez la méthode de connexion

Tout d'abord, vous devez déterminer la méthode de connexion de Fivetran à votre base de données MySQL. Vous pouvez choisir de vous connecter directement, via un tunnel SSH ou en utilisant AWS PrivateLink. Notez que la connexion à un équilibreur de charge n'est pas prise en charge.

  • Connectez-vous directement (TLS requis) : Si vous optez pour une connexion directe, assurez-vous que le protocole TLS est activé dans votre base de données. Cette méthode implique que Fivetran se connecte directement à votre base de données MySQL, ce qui est l'approche la plus simple. Configurez votre pare-feu et vos systèmes de contrôle d'accès pour autoriser les connexions entrantes depuis les adresses IP de Fivetran pour la région de votre base de données.
  • Connectez-vous via SSH (TLS facultatif) : Pour les bases de données situées dans des sous-réseaux inaccessibles, Fivetran se connecte à un serveur distinct de votre réseau via un tunnel SSH. Configurez votre pare-feu pour autoriser les connexions entre l'adresse IP du serveur de tunnel SSH et votre port MySQL. Suivez les instructions de connexion SSH de Fivetran et activez le protocole TLS sur votre base de données si nécessaire.
  • Connectez-vous à l'aide d'AWS Privatelink (version bêta) : Pour les utilisateurs du forfait Business Critical, AWS PrivateLink propose une méthode sécurisée permettant aux VPC et aux services de communiquer sans exposer le trafic à l'Internet public. Suivez le guide de configuration AWS PrivateLink de Fivetran pour configurer cette méthode de connexion pour votre base de données.

Étape 2 : Choisissez le mécanisme de synchronisation incrémentielle

Pour maintenir les données à jour après la synchronisation initiale, Fivetran utilise les méthodes Binary log ou Fivetran Teleport Sync. Les deux méthodes conservent un enregistrement des modifications récentes des données, ce qui permet à Fivetran de mettre à jour uniquement les données qui ont changé depuis la dernière synchronisation.

Étape 3 : Création d'une réplique de lecture (facultatif)

Si vous le souhaitez, vous pouvez créer une réplique de lecture spécifiquement destinée à Fivetran. Cette réplique de lecture permet à Fivetran d'intégrer des données sans surcharger votre base de données principale, car les deux utilisent le même système interne.

Étape 4 : Création d'un utilisateur et configuration des mises à jour incrémentielles

Dans votre base de données principale MySQL, créez un utilisateur dédié à l'utilisation de Fivetran. Cet utilisateur ne peut pas être créé dans la réplique en lecture. La méthode de création de cet utilisateur varie en fonction du mécanisme de mise à jour incrémentielle que vous utilisez (journal binaire ou Fivetran Teleport Sync).

  • Configuration du serveur : Appliquez les configurations nécessaires aux bases de données que vous souhaitez connecter à Fivetran. Ces configurations permettent la réplication des journaux binaires au format ROW, une exigence pour les mises à jour incrémentielles. Apportez ces modifications dans le fichier de configuration de votre serveur MySQL, redémarrez le serveur MySQL pour les implémenter.
  • Configurer la réplique pour le mode historique (facultatif) : Si votre connecteur Fivetran fonctionne en mode historique et est connecté à une réplique en lecture, des configurations spécifiques sont nécessaires. Vérifiez la valeur de slave_parallel_workers sur votre réplique de lecture et, si nécessaire, exécutez des commandes supplémentaires pour mettre à jour les variables associées.
  • Synchronisation de téléportation Fivetran : Pour cette méthode, créez un utilisateur Fivetran et accordez les autorisations SELECT sur les tables et les colonnes selon les besoins.

Étape 5 : terminer la configuration de Fivetran

Dans le formulaire de configuration du connecteur Fivetran, fournissez les informations nécessaires, notamment le préfixe du schéma de destination, l'adresse IP ou le domaine de l'hôte de la base de données, le numéro de port, les informations d'identification utilisateur spécifiques à Fivetran et les informations spécifiques à la méthode de connexion. Le cas échéant, fournissez les détails du tunnel SSH et l'ID de réplique. Après les tests et la validation, votre base de données MySQL peut être synchronisée avec Fivetran.

En suivant ces étapes organisées, vous pouvez facilement établir une connexion fiable et efficace entre Fivetran et votre base de données MySQL, facilitant ainsi une synchronisation et une intégration fluides des données. Vous n'avez besoin d'authentifier le serveur MySQL avec Fivetran qu'une seule fois, ce qui ne prendra que quelques minutes. Une fois la configuration réussie, vous pouvez commencer à synchroniser les données à l'aide de Fivetran. Vous pouvez désormais répliquer vos données n'importe où et n'importe quel nombre de fois, qu'il s'agisse d'une base de données cloud ou d'un entrepôt de données. Pour plus de détails, vous pouvez consulter cette page détaillée Guide de configuration de MySQL.

Avantages de l'utilisation de Fivetran

Les principaux avantages de l'utilisation de Fivetran pour la réplication de bases de données MySQL sont les suivants :

  • Intégration fluide des données : Fivetran fournit des connexions prédéfinies pour de nombreuses sources de données différentes, notamment MySQL et toutes ses variantes, ainsi que pour de nombreux autres entrepôts de données, tels qu'Amazon Redshift, Snowflake, etc., éliminant ainsi le besoin de scripts manuels ou de paramètres complexes. Par conséquent, le processus d'intégration des données est accéléré et facilité.
  • Flux de travail automatisés : Les flux de travail automatisés contribuent à une synchronisation cohérente et régulière des données en automatisant la procédure de chargement des données. Il gère les mises à jour incrémentielles, les modifications de format de données et les révisions de schémas en réduisant la participation manuelle et en préservant l'intégrité des données.
  • Capacités de transformation des données : Les utilisateurs peuvent exécuter des transformations de données personnalisées avant de les saisir dans l'entrepôt de données grâce aux puissantes fonctionnalités de transformation des données du système. Afin de garantir que les données sont prêtes pour l'analyse, cela permet de les nettoyer, de les normaliser et de les améliorer.
  • Surveillance et alerte : Il propose des outils de surveillance et d'alerte afin que vous puissiez suivre l'avancement du processus d'intégration des données. Il fournit une correction d'erreur, une visibilité sur les mesures de chargement des données et des notifications pour tout nouveau problème.
  • Flexibilité des sources de données : Fivetran propose un large choix de sources de données. En établissant des connexions à diverses bases de données, services cloud et applications, il permet aux entreprises d'agréger des données provenant de nombreuses sources dans des entrepôts de données tels que BigQuery, Redshift, etc.
  • Économies de temps et de ressources : Fivetran permet d'économiser du temps et des ressources en automatisant la procédure de chargement des données et en supprimant toute intervention manuelle. Maintenant que les données sont chargées, les équipes peuvent se concentrer sur l'analyse des données et la formulation de conclusions.

Conclusion

Enfin, la réplication de base de données MySQL est un outil essentiel qui permet aux entreprises d'améliorer la gestion de leurs données et la résilience de leurs systèmes. La réplication garantit la cohérence et la mise à jour des données sur de nombreuses instances. Cette méthode permet d'améliorer la disponibilité, les performances et la capacité de répartir efficacement les charges de travail. En outre, les capacités de reprise après sinistre sont améliorées grâce à la possibilité de passer en douceur à une base de données esclave en cas de panne principale.

L'exécution de tâches de réplication de bases de données MySQL peut également s'avérer fastidieuse en raison de la diversité des environnements et de l'importante bande passante technique requise. C'est ici que vous pouvez tirer parti d'un outil low-code en temps quasi réel, Fivetran. Aucun codage n'est nécessaire car il permet d'automatiser votre tâche de réplication. Vous pouvez également visiter Répertoire des connecteurs | Fivetran, pour découvrir les différents autres connecteurs pris en charge par Fivetran.

Articles associés

Commencer gratuitement

Rejoignez les milliers d’entreprises qui utilisent Fivetran pour centraliser et transformer leur data.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.