Gestion des Données Massives L3 DSI EAD
Atelier 1 : Réplication dans MongoDB
Création du Réplicat Set
Les replica set
Une grappe de serveurs partageant des copies d’un même ensemble de documents est appelée
un replicat set (RS) dans MongoDB. Dans un RS, un des nœuds joue le rôle de maître (on
l’appelle primary); les autres (esclaves) sont appelés secondaries.
Configuration du réseau
Pour afficher le réseau docker utiliser la commande
>docker network ls
Pour créer votre cluster qui contiendra vos containers
>docker network create nom_cluster
Nommé votre cluster my_mongo_clutser comme suit :
>docker network create my-mongo-cluster
Vérifier la création de votre cluster dans votre réseau docker.
Création des containers du RS
Pour créer vos containers
docker run -p port_container_1:27017 --name container1_name --net cluster_name -d mongo
mongod --replSet replicat_set_name.
Remarque :
l’option --net cluster_name indique le nom du clutser de votre réseau ( que vous avez déjà
créé plus haut)
l’option - replSet replicat_set_name. indique que les serveurs mongod sont prêts à participer
à un replica set nommé mon-rs (le rs n’est pas encore crée donnez-lui le nom que vous
voulez).
l’option -p indique le port sur lequel le serveur mongod est à l’écoute; comme ce port est
publié sur la machine hôte, en combinant l’IP de cette dernière et le port, on peut s’adresser
à l’un des trois serveurs.
Créer deux autres containers de la même façon :
docker run -p port_container_2:27017 --name container1_name --net cluster_name -d mongo
mongod --replSet replicat_set_name.
Mme MSAKNI Imen Page 1
Gestion des Données Massives L3 DSI EAD
docker run -p port_container3:27017 --name container1_name --net cluster_name -d mongo
mongod --replSet replicat_set_name.
Intier le Replicat Set
Se connecter avec Docker au shell d’un des trois containers :
L’initialisation du réplicat set se fait avec [Link] () comme suit :
[Link]
( {_id: "my-mongo-set",
version:1,
members:[{_id:0,host:" container1_name:port mongodb"},
{ _id:1,host container2_name:port mongodb"},
{_id:2,host:" container3_name:port mongodb"}]})
Pour consulter l’état du RS :
[Link]()
Questions :
Quel nœud a été élu le maitre ?
Quels sont les nœuds esclaves ?
Pour consulter qui est le nœud maître :
[Link]()
Réplication
Pour voir le fonctionnement de notre RS
1. Se connecter su container maitre
2. Créer une base (choisissez vous-même le nom de la base)
3. Créer une collection (choisissez vous-même le nom de la collection)
4. Insérer des documents dans votre collection (5 documents : choisir les champs de vos
documents par exemple : Name Title,Year…..)
Pour tester le fonctionnement de notre RS
Sur le maître :
Essayer de lire et de lire. (Décrire les résultats)
Sur les esclaves
Essayer de lire et d’écrire. (Décrire les résultats)
Mme MSAKNI Imen Page 2
Gestion des Données Massives L3 DSI EAD
Question :
Quels sont vos conclusions ?
Pour pouvoir lire dans les deux secondaries :
Se connecter sur l’un des secondaries
[Link]()
Questions :
Est-ce qu’on peut lire dans les deux secondaries? Expliquer pourquoi
Est-ce qu’on peut insérer dans les deux secondaries? Expliquer pourquoi.
Réplication et reprise en cas de panne
Pour vérifier le comportement de la reprise sur panne nous allons tuer le noeud maître. Pour
cela, dans le shell du maître :
>[Link]()
Question : Qui devient le maître?
Vérifiez, puis redémarrez le premier nœud maître. Vérifiez qu’une nouvelle élection survient.
Question : Qui est encore le maître à la fin?
Mme MSAKNI Imen Page 3