English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Replication (cluster de副本集) MongoDB

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.

Qu'est-ce que la réplication ?

  • Assurer la sécurité des données
  • Haute disponibilité des données (24*7)
  • Restauration après catastrophe
  • Aucun arrêt nécessaire pour l'entretien (comme la sauvegarde, la reconstruction de l'index, la compression)
  • Lecture de données distribuées

Principe de réplication MongoDB

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.

Caractéristiques de l'ensemble de copies :

  • Clustering de N noeuds
  • Tout noeud peut être le noeud principal
  • Toutes les opérations d'écriture se font sur le noeud principal
  • Redirection de panne automatique
  • Restauration automatique

Configuration de l'ensemble de copies MongoDB

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"

Exemple en ligne

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()

Ajouter un membre à l'ensemble de copies

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副本集.

Syntaxe

La syntaxe de base de la commande rs.add() est la suivante :
>rs.add(HOST_NAME:PORT)

Exemple en ligne

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.