top of page

Mise en place d'un cluster mongoDB

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.


ree

******************************************************************

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


bottom of page