Présentation de la réplication dans MongoDB

MongoDB est une base de données open source orientée document qui est hautement évolutive, c'est une base de données NoSQL. Il peut être utilisé pour le stockage de données à haut volume.

MongoDB stocke les données au format JSON qui est très flexible et le modèle de document est ensuite mappé aux objets dans les codes d'application.

Qu'est-ce que la réplication MongoDB?

Par réplication, nous entendons le clustering de serveurs qui exécute la même fonctionnalité. Dans le cas de MongoDB, nous avons des serveurs MongoDB pour stocker les données. Le but de la réplication est de garantir une disponibilité élevée des données. Dans le cas où l'un des serveurs tombe en panne, nous devrions toujours avoir une copie des données disponibles sur un autre serveur afin que la disponibilité ne soit pas affectée.

Les données doivent être répliquées périodiquement et à intervalles réguliers pour nous assurer que nous ne perdons aucune donnée, et même si le serveur principal tombe en panne, le second doit pouvoir répondre aux demandes des utilisateurs.

La réplication est également très efficace en cas d'équilibrage de charge, par exemple, si un certain nombre d'utilisateurs essaient de lire ou d'écrire des données sur des serveurs, dans ce cas, il serait injuste que toutes les demandes soient envoyées ou récupérées à partir de seulement un serveur, il devrait y avoir un mécanisme d'équilibrage qui devrait répartir également la charge sur les serveurs disponibles dans le cluster afin qu'aucun serveur ne manque de mémoire ou de bande passante et ne tombe en panne.

Fonctionnement de la réplication dans le processus MongoDB

La réplication dans MongoDB est réalisée à l'aide de jeux de réplicas. Les jeux de répliques sont le regroupement des serveurs MongoDB. Il existe un serveur principal et il est chargé de recevoir toutes les demandes ou les opérations d'écriture des clients et les autres instances qui seront ajoutées au jeu de réplicas seront appelées en tant qu'instances secondaires qui seront responsables de toutes les opérations de lecture.

  • Comme illustré dans le diagramme ci-dessus, toutes les données répliquent le nœud principal en nœuds secondaires, il n'y aura qu'un seul nœud principal dans un jeu de réplicas.
  • Chaque fois qu'un basculement se produit ou qu'une activité de maintenance est effectuée, un nouveau nœud principal est choisi.
  • Une fois le basculement récupéré, le nœud défaillant agit désormais comme un nœud secondaire.
  • L'application cliente communique toujours avec le nœud principal, qui est ensuite suivie de la réplication des données vers tous les nœuds secondaires.

Ensembles de répliques, création et opérations

Afin de créer une réplication à part entière des serveurs MongoDB, nous devons d'abord créer un jeu de réplicas d'instances MongoDB.

Imaginons que nous ayons trois serveurs, repl1, repl2 et repl3 où repl1 est le serveur principal et les autres sont secondaires.

Ajout de la réplication du nœud principal dans MongoDB:

  • Veuillez vous assurer que les instances de mongo.exe sont installées sur tous les serveurs indiqués.
  • Tous les mongod.exe doivent être capables de se cingler, c'est-à-dire qu'ils peuvent communiquer. Pour vérifier la même chose, veuillez exécuter les commandes suivantes à partir des serveurs principaux (au début), c'est-à-dire repl1 dans notre cas.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

De même, nous pouvons également faire le même test à partir d'autres serveurs

  • En utilisant la commande mongo –replset, nous devrions pouvoir démarrer notre première instance mongod.exe.
    mongo –replset “Replica_A” où Replica_A est le nom de notre jeu de répliques.
  • Pour l'instant, nous avons ajouté le premier serveur à notre jeu de réplicas, l'étape suivante consiste à lancer le jeu de réplicas en émettant la commande rs.initiate ().
  • L'étape suivante est l'étape de vérification où nous nous assurerons que tout ce que nous avons configuré jusqu'à présent est correct, nous pouvons le faire en exécutant la commande rs.conf ().

Ajout de la réplication de noeud secondaire dans MongoDB:

Une fois le serveur principal ajouté, il est facile d'ajouter les autres nœuds secondaires, nous pouvons le faire en émettant la commande rs.add ().

Par conséquent, exécutez la commande ci-dessous, étant donné que repl1 est notre serveur principal et repl2 et repl3 sont des serveurs secondaires respectivement.

rs.add ("repl2")

rs.add ("repl3")

Suppression de serveurs du jeu de réplicas:

Pour supprimer un serveur de tout jeu de réplicas, cela peut être fait en utilisant la commande rs.remove ().

Certaines étapes sont impliquées dans le processus, comme indiqué ci-dessous:

  • Dans un premier temps, arrêtez l'instance qui doit être supprimée. Cela peut être fait en exécutant la commande db.shutdownserver via mongo cell.
  • L'étape suivante consiste à se connecter au serveur principal.
  • Exécutez la commande suivante, disons que nous avons respectivement repl1, repl2 et repl3 en tant que serveurs principal et secondaire et que nous voulons supprimer repl3, puis nous exécuterons la commande suivante:

rs.remove ("repl3")

Quelques commandes de dépannage

  • Tous les mongod.exe doivent être capables de se cingler, c'est-à-dire qu'ils peuvent communiquer. Pour vérifier la même chose, veuillez exécuter les commandes suivantes à partir des serveurs principaux (au début), c'est-à-dire repl1 dans notre cas.

mongo –host repl2 –port 27017

mongo –host repl3 –port 27017

De même, nous pouvons également faire le même test à partir d'autres serveurs

  • Le rs.status () donnera le statut de votre jeu de réplicas
  • Pour vérifier oplog qui est un journal pour enregistrer toutes les opérations d'écriture qui ont été effectuées, exécutez cette commande - rs.printReplicationInfo.

Avantages de la réplication dans MongoDB

Le but de la réplication est de garantir une disponibilité élevée des données. Dans le cas où l'un des serveurs tombe en panne, nous devrions toujours avoir une copie des données disponibles sur un autre serveur afin que la disponibilité ne soit pas affectée.La réplication est également très efficace en cas d'équilibrage de charge, par exemple, si nous avons un numéro des utilisateurs de essaient de lire ou d'écrire des données sur les serveurs.

En résumé, les principaux avantages de la réplication servent le but ci-dessous:

  1. La haute disponibilité
  2. L'équilibrage de charge

Conclusion:

Comme nous l'avons vu, la réplication MongoDB est un processus où nous répliquons les données sur plusieurs serveurs afin d'assurer une haute disponibilité. Cela peut être fait en créant un jeu de réplicas et en ajoutant les serveurs principal et secondaire.

Articles recommandés:

Cela a été un guide pour la réplication dans MongoDB. Nous discutons ici de la création, du fonctionnement, du fonctionnement, des avantages et de certaines commandes de dépannage. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Outils GUI MongoDB
  2. Commandes MongoDB
  3. Alternatives à MongoDB
  4. Comment installer MongoDB