Recherche…


Mongodb comme un jeu de répliques

Nous créerions mongodb en tant que jeu de répliques comportant 3 instances. Une instance serait primaire et les deux autres seraient secondaires.

Pour simplifier, je vais avoir une réplique avec 3 instances de mongodb s'exécutant sur le même serveur et pour cela, les trois instances mongodb s'exécuteront sur des numéros de port différents.

Dans un environnement de production où une instance mongodb dédiée est exécutée sur un seul serveur, vous pouvez réutiliser les mêmes numéros de port.

  1. Créer des répertoires de données (chemin où les données mongodb seraient stockées dans un fichier)
- mkdir c:\data\server1 (datafile path for instance 1)
- mkdir c:\data\server2 (datafile path for instance 2)
- mkdir c:\data\server3 (datafile path for instance 3)
  1. une. Commencez la première instance de mongod
  • Ouvrez l'invite de commande et tapez la touche presse suivante.
mongod --replSet s0 --dbpath c:\data\server1 --port 37017  --smallfiles --oplogSize 100

La commande ci-dessus associe l'instance de mongodb à un nom replicaSet "s0" et lance la première instance de mongodb sur le port 37017 avec oplogSize 100 Mo

  1. b. De même commence la deuxième instance de Mongodb
mongod --replSet s0 --dbpath c:\data\server2 --port 37018  --smallfiles --oplogSize 100

La commande ci-dessus associe l'instance de mongodb à un nom replicaSet "s0" et lance la première instance de mongodb sur le port 37018 avec oplogSize 100 Mo

  1. c. Commencez maintenant la troisième instance de Mongodb
mongod --replSet s0 --dbpath c:\data\server3 --port 37019  --smallfiles --oplogSize 100

La commande ci-dessus associe l'instance de mongodb à un nom replicaSet "s0" et lance la première instance de mongodb sur le port 37019 avec oplogSize 100MB

Avec les 3 instances démarrées, ces 3 instances sont indépendantes les unes des autres actuellement. Nous devrions maintenant regrouper ces instances en tant que jeu de réplicas. Nous faisons cela avec l'aide d'un objet de configuration.

3.a Connectez-vous à l'un des serveurs mongod via le shell mongo. Pour ce faire, ouvrez l'invite de commande et tapez.

mongo --port 37017

Une fois connecté au shell mongo, créez un objet de configuration

   var config = {"_id":"s0", members[]};

cet objet de configuration a 2 attributs

    1. _id: le nom du jeu de répliques ("s0")
    2. members: [] (members est un tableau d'instances mongod. Gardons ce blanc pour l'instant, nous allons ajouter des membres via la commande push.

3.b Pour pousser (ajouter) des instances mongod au tableau des membres dans l'objet config. Sur le type de coquille mongo

 config.members.push({"_id":0,"host":"localhost:37017"});
 config.members.push({"_id":1,"host":"localhost:37018"});
 config.members.push({"_id":2,"host":"localhost:37019"});

Nous assignons à chaque instance mongod un _id et un hôte. _id peut être n'importe quel numéro unique et l'hôte doit être le nom d'hôte du serveur sur lequel il s'exécute suivi du numéro de port.

  1. Lancez l'objet config par la commande suivante dans le shell mongo.
rs.initiate(config)
  1. Donnez-lui quelques secondes et nous avons un jeu de répliques de 3 instances mongod qui s'exécutent sur le serveur. Tapez la commande suivante pour vérifier l'état du jeu de réplicas et identifier celui qui est principal et le second.
rs.status();


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow