Aller au contenu

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