MongoDB
Mongo comme jeu de répliques
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.
- 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)
- 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
- 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
- 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
- _id: le nom du jeu de répliques ("s0")
- 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.
- Lancez l'objet config par la commande suivante dans le shell mongo.
rs.initiate(config)
- 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();