MongoDB Réplication : comment créer MongoDB Ensemble de répliques

⚡ Résumé intelligent

MongoDB La réplication permet de conserver des données identiques sur plusieurs appareils. MongoDB serveur, protection contre les pannes de serveur et équilibrage de charge. Groupé MongoDB Les instances forment un ensemble de répliques, avec une instance principale acceptant les écritures et des instances secondaires gérant les opérations de lecture et le basculement.

  • 🇧🇷 Concept de base: La réplication copie les mêmes données sur plusieurs serveurs afin que les informations restent disponibles même en cas de défaillance du serveur principal.
  • 👑 Primaire et secondaire : Un ensemble de répliques comprend un membre principal qui accepte les écritures et des membres secondaires qui prennent en charge les lectures.
  • 🚀 Création de l'ensemble : La commande rs.initiate() démarre un ensemble de répliques après le lancement de la première instance mongod avec l'option replSet.
  • Ajout de membres : La commande rs.add() attache des serveurs secondaires, tandis que rs.remove() détache un membre de la configuration.
  • 🔧 Dépannage: Les commandes rs.status() et rs.printReplicationInfo() exposent l'état du signal de présence et la taille de l'Oplog à des fins de diagnostic.

MongoDB Réplication : comment créer MongoDB Ensemble de répliques

Qu'est-ce que le MongoDB Réplication ?

La réplication désigne le processus permettant de garantir que les mêmes données sont disponibles sur plusieurs systèmes. MongoDB Serveur. Ceci est parfois nécessaire afin d'accroître la disponibilité des données.

Parce que si ton principal MongoDB Le serveur tombe en panne pour une raison quelconque, il n'y aura aucun accès aux données. Mais si vous avez répliqué les données sur un autre serveur à intervalles réguliers, vous pourrez accéder aux données d'un autre serveur même en cas de panne du serveur principal.

Un autre objectif de la réplication est la possibilité d'équilibrer la charge. Si de nombreux utilisateurs se connectent au système, au lieu que tout le monde se connecte à un seul système, les utilisateurs peuvent être connectés à plusieurs serveurs afin d'obtenir une répartition égale de la charge.

In MongoDB, plusieurs MongoDB Les serveurs sont regroupés en ensembles appelés ensembles de réplicas. Chaque ensemble de réplicas comprend un serveur principal qui reçoit toutes les opérations d'écriture des clients. Les autres instances ajoutées à l'ensemble sont appelées instances secondaires et sont principalement dédiées aux opérations de lecture.

Comment créer un jeu de réplicas dans MongoDB Ajout du premier membre à l'aide de rs.initiate()

Comme mentionné dans la section précédente, pour activer la réplication, nous devons d'abord créer un jeu de réplicas de MongoDB les instances.

Prenons l'exemple de trois serveurs : ServeurA, ServeurB et ServeurC. Dans cette configuration, ServeurA est le serveur principal, et ServeurB et ServeurC sont les serveurs secondaires. La capture d'écran ci-dessous illustre ce fonctionnement.

Créer un jeu de réplicas dans MongoDB

Vous trouverez ci-dessous les étapes à suivre pour créer le MongoDB jeu de répliques ainsi que l’ajout du premier membre à l’ensemble.

Étape 1) Assurez-vous que toutes les instances de mongod.exe sont ajoutées

Assurez-vous que toutes les instances de mongod.exe ajoutées au jeu de réplicas soient installées sur des serveurs différents. Ainsi, même si un serveur tombe en panne, les autres restent disponibles, et donc les autres instances de mongod.exe peuvent continuer à fonctionner. MongoDB sera disponible.

Étape 2) Toutes les instances de mongo.exe se connectent entre elles.

Assurez-vous que toutes les instances de mongo.exe peuvent se connecter les unes aux autres. Depuis ServerA, émettez les 2 commandes ci-dessous.

mongo --host ServerB --port 27017
mongo --host ServerC --port 27017

De même, faites la même chose depuis les serveurs restants.

Étape 3) Démarrer la première instance de mongod.exe

Démarrez la première instance de mongod.exe avec l'option replSet. Cette option fournit un groupeping pour tous les serveurs qui feront partie de cet ensemble de réplicas.

mongo --replSet "Replica1"

Où « Replica1 » est le nom de votre jeu de réplicas. Vous pouvez choisir n’importe quel nom significatif pour votre jeu de réplicas.

Étape 4) Le premier serveur est ajouté à l'ensemble de réplicas

Maintenant que le premier serveur est ajouté à l'ensemble de réplicas, l'étape suivante consiste à initialiser l'ensemble de réplicas en exécutant la commande suivante : rs.initiate().

Étape 5) Vérifier l'ensemble de répliques

Vérifiez le jeu de réplicas en exécutant la commande rs.conf() pour vous assurer qu'il est correctement configuré.

Ensemble de réplicas : ajout d'un secondaire à l'aide de rs.add()

Les serveurs secondaires peuvent être ajoutés au jeu de réplicas en utilisant simplement la commande rs.add. Cette commande prend le nom des serveurs secondaires et ajoute les serveurs au jeu de réplication.

Étape 1) Supposons que vous ayez ServerA, ServerB et ServerC, qui doivent faire partie de votre ensemble de réplicas, et que ServerA soit défini comme le serveur principal de l'ensemble de réplicas.

Pour ajouter ServerB et ServerC à l'ensemble de réplicas, exécutez les commandes suivantes :

rs.add("ServerB")
rs.add("ServerC")

Ensemble de réplicas : reconfiguration ou suppression à l'aide de rs.remove()

Pour supprimer un serveur de l'ensemble de configuration, nous devons utiliser la commande « rs.remove ».

Étape 1) Commencez par arrêter l'instance que vous souhaitez supprimer. Pour ce faire, exécutez la commande `db.shutdownServer` depuis l'interface MongoDB.

Étape 2) Se connecter au serveur principal.

Étape 3) Utilisez la commande rs.remove pour supprimer le serveur souhaité du jeu de réplicas. Par exemple, si vous avez un jeu de réplicas avec ServerA, ServerB et ServerC, et que vous souhaitez supprimer ServerC, saisissez la commande :

rs.remove("ServerC")

Dépannage des jeux de réplicas

Voici les mêmes méthodes de dépannage à suivre en cas de problèmes rencontrés lors de l'utilisation d'ensembles de répliques.

  1. Assurez-vous que toutes les instances de mongo.exe peuvent se connecter entre elles. Supposons que vous ayez 3 serveurs appelés ServeurA, ServeurB et ServeurC. Depuis ServeurA, exécutez les 2 commandes suivantes :
    mongo --host ServerB --port 27017
    mongo --host ServerC --port 27017
  2. Exécutez la commande rs.status. Cette commande affiche l'état du jeu de réplicas. Par défaut, chaque membre envoie aux autres des messages appelés « battements de cœur », qui indiquent simplement que le serveur est actif et en fonctionnement. La commande « status » récupère l'état de ces messages et indique s'il y a des problèmes avec l'un des membres du jeu de réplicas.
  3. Vérifiez la taille de l'Oplog. L'Oplog est une collection de MongoDB qui stocke l'historique des écritures effectuées sur le MongoDB base de données. MongoDB utilise ensuite cet Oplog pour répliquer les écritures sur les autres membres du jeu de réplicas. Pour vérifier l'Oplog, connectez-vous à l'instance de membre requise et exécutez la commande rs.printReplicationInfo. Cette commande affichera la taille du journal et combien de temps il peut conserver les transactions dans son fichier journal avant qu'il ne soit plein.

FAQ

Oui. Les assistants IA peuvent générer les options de démarrage de mongod, la configuration rs.initiate() et les commandes rs.add() pour un ensemble de réplicas. Vérifiez toujours les noms d'hôtes, les ports et les priorités des membres avant d'appliquer la configuration aux serveurs de production.

Oui. Les outils de surveillance basés sur l'IA peuvent analyser les métriques rs.status() et Oplog pour identifier les serveurs secondaires en retard par rapport au serveur principal. Ils peuvent suggérer des causes telles que la latence réseau ou la lenteur des disques, mais les ingénieurs doivent confirmer avant d'intervenir.

MongoDB Il est recommandé de prévoir un nombre impair de membres votants, généralement trois, afin que les élections puissent aboutir à une majorité. Si seulement deux nœuds de données sont disponibles, un arbitre peut être ajouté pour départager les égalités sans avoir à stocker de données.

Lorsque le candidat principal devient injoignable, les membres restants organisent une élection et désignent automatiquement un candidat secondaire éligible comme candidat principal. Les opérations reprennent une fois le nouveau candidat principal désigné.ping L'application est disponible avec un temps d'arrêt minimal.

Résumez cet article avec :