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