Mise en place d'un cluster mongoDB
- ines slimene
- 17 sept. 2019
- 2 min de lecture
Dernière mise à jour : 18 sept. 2019
Dans ce blog on va voir comment on peut mettre en place un cluster mongodb sur une machine windows.
Notre cluster contiendra deux shards (voir cours) pour chaque shard on a trois replica. et un serveur de configuration avec ces trois replica.

******************************************************************
Test sharding
******************************************************************
Exécuter le fichier demarrage_cluster_mongo.bat pour créer le cluster suivant :
Une fois les services démarrés, nous allons nous connecter à mongos :
mongo –host localhost –port 37023
-- connexion à la base test :
mongos> use test
-- Activer le sharding sur la base de donnée test :
mongos> sh.enableSharding("test")
-- Indexer le shamp _id :
mongos> db.users.ensureIndex( { _id : "hashed" } )
-- Donner la clé de sharding de la collection users :
mongos> sh.shardCollection("test.users", { "_id": "hashed" } )
-- Insérer des données dans une collection users de la base test.
mongos> for (var i = 1;i <=50000;i++) db.users.insert({_id:i,name:"test",country:"Tunisia"})
-- Afficher l'état du système :
mongos> sh.status()
******************************************************************
Test réplication
******************************************************************
-- Connexion serveur primaire (master)
mongo --port 37017
-- Vérifier la configuration du replica set
cfg = rs.conf()
-- en donnant au membre 1 (port 37018) une priorité supérieure a celle du master (37017), il sera élu automatiquement en tant que master
cfg.members[1].priority = 2
rs.reconfig(cfg) // appliquer les changement
mongo --port 37018
-- de synchronisation entre les noeuds
rs.printSlaveReplicationInfo() // a partir du master
**************************************************************
Test synchronisation
**************************************************************
--insertion document dans le master
PRIMARY> use mabd
PRIMARY> db.tab.insert({name:"alain",age:26,hobby:"database"})
PRIMARY> db.tab.count()
-- connexion au replicat secondaire
mongo --port 37017
SECONDARY> db.getMongo().setSlaveOk() --synchronisation avec le master
SECONDARY> show dbs -- vérification de l'existence de la base mabd
**************************************************************
Test de tolérance aux pannes
**************************************************************
-- on va arrêter le master pour tester la tolérance aux pannes de notre cluster
mongo --port 37018
PRIMARY> use admin
PRIMARY> db.shutdownServer()
-- en se connectant au slave du port 37017, on remarque qu'il est devenu le master
mongo --port 37017
PRIMARY> rs.status()

Commentaires