English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La réplication MongoDB est le processus de synchronisation des données sur plusieurs serveurs.
La réplication fournit une sauvegarde redondante des données et stocke des copies de données sur plusieurs serveurs, augmentant ainsi la disponibilité des données. Et assure la sécurité des données.
La réplication permet également de restaurer les données après une panne matérielle ou une interruption de service.
La réplication mongodb nécessite au moins deux noeuds. L'un est le noeud principal, responsable des demandes des clients, et les autres sont des noeuds secondaires, responsables de la copie des données du noeud principal.
Les modes de combinaison courants des noeuds de mongodb sont : un maître et un esclave, un maître et plusieurs esclaves.
Le noeud principal enregistre toutes les opérations oplog sur lui-même, et les noeuds secondaires demandent régulièrement ces opérations au noeud principal, puis exécutent ces opérations sur leurs copies de données, assurant ainsi que les données des noeuds secondaires sont identiques à celles du noeud principal.
Le diagramme de structure de la réplication MongoDB est présenté ci-dessous :
Dans la diagramme de structure ci-dessus, le client lit les données à partir du noeud principal, et lorsque le client écrit des données au noeud principal, Le noeud principal et le noeud secondaire interagissent pour garantir l'uniformité des données.
Dans ce tutoriel, nous utilisons le même MongoDB pour faire l'expérience de MongoDB principal-esclave. Les étapes d'opération sont les suivantes :
1et fermez le serveur MongoDB en cours d'exécution.
Nous spécifions maintenant --Utilisez l'option replSet pour démarrer mongoDB.--La syntaxe de base de replSet est la suivante :
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"
mongod --port 27017 --dbpath "D:\set up\mongodb\data" --replSet rs0
L'exemple suivant démarre un exemple MongoDB nommé rs0, whose port number is27017
Une fois démarré, ouvrez la boîte de dialogue de commande et connectez-vous au service mongoDB.
Utilisez la commande rs.initiate() dans le client MongoDB pour démarrer un nouvel ensemble de copies.
Nous pouvons utiliser rs.conf() pour vérifier la configuration de l'ensemble de copies
Vérifiez l'état de l'ensemble de copies en utilisant la commande rs.status()
Pour ajouter un membre au cluster de副本集, nous devons utiliser plusieurs serveurs pour démarrer le service mongo. Accédez au client MongoDB et utilisez la méthode rs.add() pour ajouter un membre au cluster de副本集.
>rs.add(HOST_NAME:PORT)
Assumons que vous avez démarré un service mongod1.net, le port en cours d'utilisation est27017le service MongoDB . Utilisez la commande rs.add() dans la fenêtre de commande client pour l'ajouter au cluster de副本集, comme indiqué ci-dessous :
>rs.add("mongod1.net:27017") >
Dans MongoDB, vous ne pouvez ajouter un service MongoDB au cluster de副本集 que via le nœud principal , Vous pouvez utiliser la commande db.isMaster() pour déterminer si le service MongoDB en cours d'exécution est le nœud principal .
Les clusters de副本集 de MongoDB diffèrent de la configuration maître-esclave courante, où en cas de panne du hôte, tous les services s'arrêtent. Cependant, dans un cluster de副本集, en cas de panne du hôte, un exemplaire prend le relais et devient le nœud principal, évitant ainsi les pannes.