GNU/Linux >> Tutoriels Linux >  >> Linux

Configurer la réplication source-source MySQL

Remarque :Rackspace Support ne peut pas vous aider avec les configurations de réplication source-source en raison de la complexité de la configuration et de la probabilité d'erreur. Comme alternative à la réplication directe source-source MySQL, envisagez soit notre service Cloud Databases, soit un moteur de réplication comme Tungsten pour une réplication plus fiable des données entre les instances de base de données.

Réplication source-source MySQL

Cet article vous explique comment configurer la réplication de cluster :réplication bidirectionnelle et circulaire entre deux serveurs cloud. La réplication de données source-source permet aux données répliquées, stockées sur plusieurs ordinateurs, d'être mises à jour par tout membre contributeur autorisé du groupe. Cela permet une collaboration plus ouverte que la réplication source-réplica où toute modification nécessaire identifiée par un membre du groupe doit être soumise à la source désignée du nœud.

Ce tutoriel utilise le système d'exploitation Debian 5 (Lenny), construit à partir de l'image de base RackspaceCloud.

Présentation de la configuration

Il y a deux serveurs cloud, debian501 et debian502 , dans cet exercice. Les deux serveurs ont deux adresses IP (une publique, une privée). L'exercice configure la réplication à effectuer sur l'interface IP privée afin que vous n'encouriez aucun frais de bande passante.

Création des serveurs cloud

Vous devez créer deux serveurs cloud Linux, en utilisant l'image de base Debian 5. Utilisez les étapes suivantes pour créer chaque serveur séparément.

  1. Connectez-vous au panneau de configuration du cloud.
  2. Dans la barre de navigation supérieure, cliquez sur Sélectionner un produit > Rackspace Cloud .
  3. Sélectionnez Serveurs> Serveurs Cloud .
  4. Cliquez sur Créer un serveur .
  5. Nommez les serveurs afin de pouvoir les identifier facilement lors de la configuration. Dans cet exercice, ils sont nommés debian501 et debian502.
  6. Sélectionnez l'image Debian.
  7. Sélectionnez la configuration RAM (type) qui répond aux exigences de votre base de données.
  8. Cliquez sur Créer un serveur .

Les commandes serveur suivantes doivent être exécutées en tant qu'utilisateur privilégié (racine, groupe sudo).

Installer MySQL

Nous devons d'abord installer MySQL sur les deux serveurs Debian Cloud. Comme toujours, avant d'installer des packages, nous devons nous assurer que notre liste de packages est à jour et que nos paramètres régionaux/langue sont correctement configurés.

  • Mettez à jour la base de données des packages :

      # aptitude update
    
  • Installer les paramètres régionaux :

      # aptitude install locales
    
      # dpkg-reconfigure locales
    
  • Les paramètres régionaux dpkg-reconfigure locales La commande ouvre une fenêtre de configuration des paramètres régionaux dans laquelle vous pouvez choisir les paramètres régionaux de votre système en fonction de votre pays et de votre région. Dans ce cas, choisissez en\_GB.UTF-8 .

  • Maintenant, exécutez les commandes suivantes pour installer MySQL :

      # aptitude install mysql-server mysql-client libmysqlclient15-dev
    

Configuration de la réplication

Une fois le mysql-server package a été installé avec succès, commencez à configurer chacun des nœuds MySQL afin d'activer la réplication entre eux.

Vous devez créer la base de données qui sera répliquée ainsi que le nom d'utilisateur et le mot de passe de réplication à utiliser avec celle-ci. Vous pouvez utiliser les commandes décrites ci-dessous pour les configurer, en vous rappelant de modifier toutes les chaînes/valeurs entre parenthèses pour les appliquer à votre configuration spécifique.

  • Tout d'abord, sur debian501, connectez-vous à la console mysql (en utilisant le mot de passe root mysql que vous avez configuré lors de l'installation de MySQL).

      # mysql -u root -p
      mysql>
    
  • Maintenant, créez l'utilisateur de réplication, qui est utilisé pour synchroniser les modifications.

      mysql> grant replication slave on \*.\* to replicauser@'[private IP of debian502]' identified by '[some password]';
      mysql> flush privileges;
      mysql> exit
    
  • Faites de même pour debian502.

      mysql> grant replication slave on \*.\* to replicauser@'[private IP of debian501]' identified by '[some password]';
      mysql> flush privileges;
      mysql> exit
    
  • De retour sur debian501, modifiez /etc/mysql/my.cnf et insérez, mettez à jour ou décommentez les entrées suivantes :

      bind-address = 0.0.0.0
      server-id = 1
      log-bin = /var/log/mysql/var/bin.log
      log-slave-updates
      log-bin-index = /var/log/mysql/log-bin.index
      log-error = /var/log/mysql/error.log
      relay-log = /var/log/mysql/relay.log
      relay-log-info-file = /var/log/mysql/relay-log.info
      relay-log-index = /var/log/mysql/relay-log.index
      auto_increment_increment = 10
      auto_increment_offset = 1
      master-host = [private IP address of debian502]
      master-user = [replication username]
      master-password = [replication password]
      replicate-do-db = <database name to be replicated>
    
  • Répétez les étapes sur le serveur debian502.

      bind-address = 0.0.0.0
      server-id = 2
      log-bin = /var/log/mysql/bin.log
      log-slave-updates
      log-bin-index = /var/log/mysql/log-bin.index
      log-error = /var/log/mysql/error.log
      relay-log = /var/log/mysql/relay.log
      relay-log-info-file = /var/log/mysql/relay-log.info
      relay-log-index = /var/log/mysql/relay-log.index
      auto_increment_increment = 10
      auto_increment_offset = 2
      master-host =  [private IP address of debian501]
      master-user = [replication username]
      master-password = [replication user password]
      replicate-do-db = [database name to be replicated]
    
  • Maintenant, redémarrez les deux bases de données. Si le redémarrage du service sur l'un ou l'autre des serveurs échoue, vérifiez le /var/log/mysql/error.log fichier pour toutes les erreurs. Mettez à jour la configuration et vérifiez les fautes de frappe, etc.

Tester les scénarios

Dans le but de tester votre configuration de réplication, créez la base de données spécifiée dans la section de configuration précédente. Créez également une table de test sur l'un des nœuds et consultez les fichiers journaux dans /var/log/mysql annuaire. Notez que toutes les modifications de la base de données doivent être répliquées immédiatement sur votre autre serveur.

  mysql> create database [your-db-name];
  mysql> use [your-db-name]
  mysql> create table foo (id int not null, username varchar(30) not null);
  mysql> insert into foo values (1, 'bar');
  • Comme test supplémentaire, arrêtez le service MySQL sur debian502, effectuez des modifications de base de données sur le serveur debian501, puis redémarrez le service MySQL sur debian502. Le service MySQL debian502 devrait synchroniser automatiquement toutes les nouvelles modifications.

  • Vous devriez également envisager de modifier les valeurs de rotation des journaux binaires par défaut (expire_logs_days et max_binlog_size ) dans le /etc/mysql/my.cnf fichier, car, par défaut, tous les journaux binaires sont conservés pendant 10 jours. Si vous avez un nombre élevé de transactions sur votre application de base de données, cela peut entraîner une utilisation importante de l'espace disque dans les journaux. Pensez donc à modifier ces valeurs pour qu'elles correspondent à vos politiques de sauvegarde de serveur. Par exemple, si vous avez configuré des sauvegardes quotidiennes de votre nœud MySQL, vous n'avez pas besoin de conserver 10 jours de journaux binaires.


Linux
  1. Comment configurer la réplication MySQL maître-maître

  2. Comment configurer la réplication MySQL sur CentOS

  3. Configurer le serveur MySQL sur le système d'exploitation Ubuntu

  4. Configurer la réplication source-réplica MySQL

  5. Quel est le but de "l'utilisateur système" dans la réplication MySQL

Comment configurer la réplication maître-esclave MySQL sur CentOS 7

Comment configurer la réplication maître-esclave MySQL (MariaDB) sur Debian 10

Configurer la réplication multi-maître OpenLDAP sous Linux

Réplication maître-esclave MySQL 8 sur Ubuntu 20.04

Comment installer et configurer MySQL sur Ubuntu 18.04

Comment configurer la réplication maître-esclave MySQL sur RHEL 7 ?