Récupération de type point-in-time
Introduction à la récupération de type point-in-time (PITR)
- Objectif : restaurer les données à un instant précis
- Permet de minimiser les pertes de données en cas de corruption ou de suppression accidentelle
- Nécessite les journaux d'opérations (oplog) pour la mise en œuvre
Utilisation des journaux d'opérations (oplog) pour la récupération PITR
- Oplog : journal des opérations de modification des données (insertions, mises à jour, suppressions)
- Stocké dans la collection "oplog.rs" du "local" database
- Commande pour vérifier l'oplog : db.getReplicationInfo()
- Taille et durée de rétention de l'oplog configurables
- Extraction des opérations depuis l'oplog pour une période donnée
Processus de restauration avec PITR
- Sauvegarder l'état actuel des données avec mongodump ou une méthode basée sur le système de fichiers
- Extraire les opérations de l'oplog pour la période cible avec mongoexport
- Exemple :
mongoexport --db local --collection oplog.rs --query "{'ts': {'$gte': startTimestamp, '$lte': endTimestamp}}" --out oplog-export.json
- Restaurer les données sauvegardées à l'étape 1 avec mongorestore ou une méthode basée sur le système de fichiers
- Appliquer les opérations extraites de l'oplog à l'aide de mongoimport
- Exemple :
mongoimport --db targetDb --collection targetCollection --file oplog-export.json --mode upsert
Limitations et considérations lors de l'utilisation de la récupération PITR
- Nécessite un replica set pour utiliser l'oplog
- La durée de rétention de l'oplog doit être suffisante pour couvrir la période de récupération souhaitée
- La capacité de stockage doit être prise en compte lors de la configuration de la taille de l'oplog
- Ne fonctionne pas avec les transactions multi-documents (à partir de MongoDB 4.0)
Cas d'utilisation et recommandations
- Récupération après une suppression accidentelle de données
- Récupération après une corruption de données due à une erreur de manipulation
- Recommandation : utiliser la récupération PITR en complément d'autres stratégies de sauvegarde et de restauration
- Tester régulièrement le processus de récupération PITR pour s'assurer de son bon fonctionnement