Vous êtes sur la page 1sur 13

Compte rendu du tp7

imane elkari

Suite de manipulation avancée de MongoDB :

-Q8: Lister toutes les occupations possibles sur la base de données FilmsCine

-Q9: Ajouter un comment (comme champ) pour l'évaluateur << Clifford Johnathan >>

-Q10: Supprimer le champ ajouté récemment (comment) sans supprimer le document

-Q11: Ajouter un comment (accepté) pour tous les évaluateurs qui sont des artistes (artist)

-Q12: Supprimer tous les évaluateurs ayant un commentaire (accepté).


Il- La Réplication des données (Replicat Set) :
I-1- Stratégie de déploiement :

I-2- Instancier un ReplicaSet:

Nons allons simuler un ReplicatSet localement (seule machine)

On a crer 3 dossiers desire chacun pour une instance

On lance les 3 serveurs chaque serveur pour chaque instance

Sur une console, on se connecte au port 27018


On vas Initialiser le replicat set avec la commande rs.initiate().

On consulte la configuration initiale du ReplicaSet avec la commande: rs.conf().


Maintenant, ajoutons deux autres membres au ReplicaSet par les commande suivantes:

rs.add("localhost:27019") rs.add("localhost:27020")

On Vérifie que toutes ces instances ont été bien intégrés dans le ReplicatSet par la commande rs.conf

On vérifie quel est le serveur primaire et secondaire.


Dans l'instance Primary (en utilisant le port du serveur 27018),

on ajoute une nouvelle base de données puis On insére un document dans cette base.

On se connecte au port 27019

On verifie l’existence de la base de donnees

On arrette le serveur primaire comme s’il y’a une panne


On verifie avec rs.status() dans le serveur 27019 , on voit q’il est devenu primaire a la place de 27018
1-3- Définir l'arbitre:

Pour départager les votes (nombre pair de serveur par exemple), un arbitre sera nécessaire pour
désigner le Primary. Pour ce faire:

on Crée le répertoire C:\data\arb, et on exécute un arbitre en spécifiant le port 30000:

mongod --port 30000 --dbpath c:\data\arb --replSet rs0

On Ajoutel'arbitre dans la console d'administration : rs.add Arb("localhost:30000")

Pour consulter le statut actuel du ReplicaSet et vérifier l'ajout de l'arbitre, il suffit de faire: rs.status()
II- Distribution des données avec MongoDB (Sharding)
II-1- Création du serveur de configuration

On a crée deux dossier config1 et config2

Puis on lance les commandes suivantes

mongod --configsvr --replSet configReplSet --port 27019 --dbpath C:\data\config1

mongod --configsvr --replSet configReplSet --port 27020 --dbpath C:\data\config2


On Initialise la replicaset et on l’initialise

II-2- Création des shards

Ensuite, il est nécessaire de lancer les shard en ReplicaSet. Nous allons en créer deux pour tester la
distribution.

On va créer deux dossiers sh1 et sh2 pour les sharding

Et puis on executes ces commandes


mongod --shardsvr --replSet sh1 --port 27031 --dbpath c:\data\sh1

mongod --shardsvr --replSet sh2 --port 27032 --dbpath c:\data\sh2

On initialize les shards:

mongo --port 27031 --eval "rs.initiate()"

mongo --port 27032 --eval "rs.initiate()"


Lancement du mangos et connexion des shards :

II-3- Lancement du mongos et connexion des shards

Maintenant que nous avons des shards et des ConfigServers, nous pouvons nous attaquer au mongos
(routeur).

mongos --configdb configReplSet/localhost:27019 --port 27017

Les shards peuvent alors être ajoutés les uns après les autres au niveau du mongos en mode console

mongo --port 27017

sh.addShard( "sh1/localhost:27031")

sh.addShard( "sh2/localhost:27032")
II-4- Distribution de la base de données (tester le fonctionnement)

On va cerer une base de donnee et une collection pour les tests

use distr_test

sh.enableSharding("distr_test");

db.createCollection("coll_distr");

db.test.createIndex({"_id":1});
sh.shard Collection ("distr_test. coll_distr",{"_id":1});

On peut importer les données des restaurants dans cette base et afichher le statut dans le shard

mongoimport --db distr_test --collection coll_distr --port 27017 restaurants.json

mongo --port 27017 --eval "sh.status()"

Vous aimerez peut-être aussi