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.
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.
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.
- 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
- 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.
- 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.


