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