TP REPLICATION, SAUVEGARDE ET RESTAURATION
DANS MONGODB
TP MongoDB : Réplication, Sauvegarde et Restauration
Objectif du TP
Ce TP vous guidera à travers les processus de réplication, sauvegarde et restauration
de bases de données MongoDB, avec des instructions détaillées pour Windows et
Linux.
Prérequis
- MongoDB installé (version 6.0 ou supérieure recommandée)
- Minimum 4 GB de RAM
- Espace disque suffisant pour les sauvegardes (~10 GB recommandé)
- Connaissances de base en ligne de commande
Partie 1 : Réplication avec MongoDB
1.1 Introduction à la réplication MongoDB
La réplication MongoDB fournit une redondance et augmente la disponibilité des
données. Un ensemble de réplicas (replica set) est un groupe de serveurs MongoDB
qui maintiennent le même ensemble de données, offrant une redondance et une haute
disponibilité.
1.2 Configuration d'un ensemble de réplicas (3 nœuds)
Sur Windows
1.Creez trois répertoires pous les données:
1 mkdir C:\data\rs0-0 C:\data\rs0-1 C:\data\rs0-2
2.Lancez trois instances MongoDB dans trois fenêtres de commande distinctes :
1 Premier nœud (port 27017)
2 mongod --replSet rs0 --port 27018 --dbpath C:\data\rs0-0 --bind_ip localhost
3
4 # Deuxième nœud (port 27018)
5 mongod --replSet rs0 --port 27019 --dbpath C:\data\rs0-1 --bind_ip localhost
6
7 # Troisième nœud (port 27019)
8 mongod --replSet rs0 --port 27020 --dbpath C:\data\rs0-2 --bind_ip localhost
9 ```
1.3 Initialisation et configuration du Replica Set
1. Connectez-vous au premier nœud :
1 mongosh --port 27018
2. Initialisez le replica set :
```javascript
1 rs.initiate({
2 _id: "rs0",
3 members: [
4 { _id: 0, host: "localhost:27017" },
5 { _id: 1, host: "localhost:27018" },
6 { _id: 2, host: "localhost:27019" }
7 ]
8 })
3. Vérifiez l'état du replica set :
```javascript
1 rs.status()
1.4 Test de réplication
1. Insérez des données dans la collection "test" :
```javascript
1 use testdb
2 db.test.insertOne({ name: "test document", value: 1 })
2. Vérifiez que les données se répliquent.
Connectez-vous à un nœud secondaire :
1 mongosh --port 27019
3. Activez la lecture sur le secondaire :
```javascript
1 rs.secondaryOk()
4. Vérifiez les données :
```javascript
1 use testdb
2 db.test.find()
1.5 Failover et récupération
1 db.adminCommand({ shutdown: 1 })
2. Vérifiez qu'un nouveau primaire a été élu :
```javascript
1 rs.status()
3. Redémarrez le nœud arrêté et vérifiez qu'il rejoint le replica set en tant que
secondaire.
Partie 2 : Sauvegarde avec MongoDB
2.1 Méthode 1 : Sauvegarde avec mongodump
Sur Windows
1. Créez un répertoire pour les sauvegardes :
1 mkdir C:\backup
2. Effectuez une sauvegarde complète :
```
1 mongodump --port 27017 --db testdb --out C:\backup\full_backup
3. Sauvegarde avec compression :
```
1 mongodump --port 27017 --db testdb --out C:\backup\compressed_backup --gzip
4. Sauvegarde incrémentielle basée sur l'oplog :
1 mongodump --port 27017 --db testdb --out C:\backup\incremental_backup --oplog
2.2 Méthode 2 : Sauvegarde fichier par fichier
Sur Windows
1. Arrêtez l'instance MongoDB :
1 mongosh --port 27017 --eval "db.adminCommand({ shutdown: 1 })"
2. Copiez les fichiers de données :
1 xcopy C:\data\rs0-0\*.* C:\backup\file_backup\ /E /I
3. Redémarrez MongoDB :
1 mongod --replSet rs0 --port 27017 --dbpath C:\data\rs0-0 --bind_ip localhost
Partie 3 : Restauration avec MongoDB
3.1 Restauration à partir de mongodump
Sur Windows
1. Restaurez une base de données complète :
1 mongorestore --port 27017 --db testdb C:\backup\full_backup\testdb
2. Restaurez une collection spécifique :
1 mongorestore --port 27017 --db testdb --collection test
C:\backup\full_backup\testdb\test.bson
3.2 Restauration à partir de copies de fichiers
Sur Windows
1. Arrêtez l'instance MongoDB :
1 mongosh --port 27017 --eval "db.adminCommand({ shutdown: 1 })"
2. Supprimez les fichiers de données actuels :
1 rmdir /S /Q C:\data\rs0-0
3. Copiez les fichiers de sauvegarde :
1 xcopy C:\backup\file_backup\*.* C:\data\rs0-0\ /E /I
4. Redémarrez MongoDB :
1 mongod --replSet rs0 --port 27017 --dbpath C:\data\rs0-0 --bind_ip localhost