MongoDB ReplicaSet : copier et sauvegarder ses données

Pour éviter les désagréments des pannes et autres perturbations, il est recommandé d’utiliser un MongoDB Replicaset. Celui-ci conserve des copies de vos données sur différents serveurs pour les mettre à disposition sans perte de temps.

MongoDB ReplicaSet, c’est quoi ?

L’objectif principal d’un système de gestion de base de données comme MongoDB est de conserver vos données de manière claire et sécurisée. Dans cette optique, les Replica Sets MongoDB constituent un outil important pour la protection des données : la méthode consiste à dupliquer à l’identique les jeux de données et à les répartir sur plusieurs nœuds et sur différents serveurs. MongoDB distingue les nœuds primaires et les nœuds secondaires.

  • Primaire : le nœud primaire est aussi appelé nœud maître. Il est le point de départ pour la création des Replica Sets MongoDB et possède les droits de lecture/écriture ;
  • Secondaire : les nœuds secondaires (aussi appelés esclaves) sont des copies exactes du nœud maître. Ils servent uniquement à conserver les données copiées et n’ont généralement pas de droits de lecture/écriture. En cas de défaillance du nœud primaire, un nœud secondaire prend le relais pour remplacer le nœud maître. Il est recommandé de toujours créer un nombre impair de nœuds secondaires.

Comment fonctionne le Replicaset ?

Un Replicaset MongoDB se compose donc d’un nœud primaire (ou maître) et de plusieurs nœuds secondaires (ou esclaves) créés à partir de copies exactes du maître. Il doit y avoir au moins deux nœuds secondaires, mais il est recommandé un minimum de trois copies. Le transfert de données se fait toujours exclusivement du nœud primaire vers les nœuds secondaires. Si le nœud maître devait tomber en panne à cause d’une erreur, d’une défaillance du système ou de travaux de maintenance, un nœud esclave prendrait aussitôt la place du maître afin de garantir la disponibilité des données pendant la durée de la panne. Une fois le nœud défectueux réparé, le nœud esclave redevient un nœud secondaire.

Quels sont les avantages d’un Replicaset ?

L’utilisation d’un Replica Set MongoDB présente plusieurs avantages. D’une part, elle est recommandée pour les aspects de sécurité mentionnés plus haut qui font que, même en cas de panne temporaire ou permanente d’un serveur, les données stockées restent accessibles et ne sont pas perdues. La disponibilité permanente est évidemment un avantage important. Les travaux de maintenance ne gênent pas l’accès à vos données car il est possible de les récupérer facilement à partir d’un nœud secondaire. Tout cela augmente considérablement la vitesse et la disponibilité des données, de telle façon que les temps de pannes ou les problèmes de serveur ne seront plus un problème pour vous.

Créer un Replicaset MongoDB

Le troisième avantage d’un MongoDB Replicaset, et non des moindres, est sa facilité d’utilisation. Il est possible de créer facilement des Replica Sets MongoDB et de vous assurer le meilleur niveau de sécurité possible pour vos données. La syntaxe de base des commandes MongoDB --replSet se présente ainsi :

mongod --port "PORT" --dbpath "IHR_DB_DATA_PATH" --replSet "NOM_DU_REPLICASET”

Pour créer un Replicaset MongoDB, voici la procédure :

  1. Arrêtez tous les serveurs MongoDB actifs ;
  2. Saisissez la commande, avec les spécifications suivantes pour notre exemple :
mongo --port 32014 --dbpath "D:\set up\mongodb\data" --replSet Exemple

Vous créez une instance mongodb « Exemple » sur le port 32014 ;

  1. Connectez-vous ensuite à l’instance ;
  2. Utilisez la commande rs.initiate() pour démarrer un nouveau ReplicaSet MongoDB ;
  3. La commande rs.conf() permet de configurer le ReplicaSet MongoDB. Vous pouvez vérifier son statut avec rs.status() ;
  4. Pour ajouter maintenant des membres à votre ReplicaSet MongoDB, utilisez la commande rs.add() avec la suivante :
rs.add(HOST_NAME:PORT)

Dans cet exemple, voici le code correspondant :

>rs.add("exemple1.net:32014")
Conseil

Suivez notre tutoriel MongoDB pour apprendre les bases du célèbre système de gestion de base de données !