Qu'est-ce que le point-in-time recovery (PITR) ?

Mis à jour : septembre 2026

Le point-in-time recovery est une méthode de restauration qui rejoue un journal des modifications sur une sauvegarde de base, jusqu’à la seconde choisie. Le scénario pour lequel il existe n’est pas la panne matérielle — la réplication s’en charge — mais l’erreur humaine : une migration qui a corrompu des lignes à 14:32, un script qui a supprimé le mauvais tenant. Le PITR y répond avec la seule chose utile : la base de données exactement telle qu’elle était à 14:31:59.

Points clés

QuestionRéponse
SnapshotUne photographie — la restauration atterrit sur l’instant où il a été pris
PITRSauvegarde de base + journal des modifications rejoué — la restauration atterrit sur n’importe quelle seconde
RPOLa quantité de données récentes que vous pouvez perdre — fixée par la fréquence de capture
RTOLa durée que peut prendre la restauration — fixée par le volume et la mécanique
Le partageUn BaaS gère la mécanique ; les objectifs et les exercices restent à votre charge

Le mécanisme, en une seule session

-- Le journal des modifications est la matière première : chaque écriture validée, dans l'ordre.
-- Avant une opération risquée, vous pouvez y déposer un marqueur nommé :
SELECT pg_create_restore_point('before_pricing_migration');

-- Restauration = sauvegarde de base + rejeu, arrêté là où vous le décidez :
--   restaurer la sauvegarde de base prise à 02:00
--   rejouer le journal vers l'avant…
--   …et s'arrêter juste avant les dégâts :
--     recovery_target_time = '2026-08-05 14:31:59+00'
--     (ou recovery_target_name = 'before_pricing_migration')

-- Tout ce qui a été validé avant la cible existe ; rien de postérieur n'existe.

C’est le write-ahead log qui fait double emploi : le même enregistrement ordonné qui assure la durabilité des transactions devient, une fois archivé en continu, une machine à remonter le temps. Les bases de données documentaires jouent exactement la même partition avec l’oplog — capturer le flux d’opérations, le rejouer sur un snapshot, s’arrêter à la demande (PostgreSQL parle d’archivage continu ; MongoDB documente la même architecture à partir de snapshots du système de fichiers).

Après toute restauration, l’étape de vérification de l’exercice se joue au niveau applicatif — confirmez que la chronologie a atterri là où vous le vouliez :

// JavaScript / Node.js — Back4app JS SDK
// Restore drill: verify the restored data lines up with the incident timeline
const incident = new Date('2026-08-05T14:32:00Z'); // when the bad deploy hit

const latest = new Parse.Query('Order');
latest.lessThan('createdAt', incident);
latest.descending('createdAt');
const lastGood = await latest.first();   // newest order before the incident

const after = new Parse.Query('Order');
after.greaterThanOrEqualTo('createdAt', incident);
const leaked = await after.count();      // must be 0 on a clean PITR restore

console.log(`last good write: ${lastGood?.get('createdAt')}`);
console.log(`rows past the recovery target: ${leaked}`);

Comment une restauration atteint 14:31:59

Déroulement d'un point-in-time recoveryUne sauvegarde de base nocturne est restaurée, puis le journal des modifications archivé est rejoué dans l'ordre jusqu'à la cible de restauration configurée juste avant l'incident, ce qui produit l'état de la base de données à la seconde choisie.

arrêt à la cible :
14:31:59

jamais rejoué

Sauvegarde de base
(snapshot de 02:00)

Rejeu du journal archivé
02:00 → …

Capture continue du journal
(WAL / oplog)

Base de données telle
qu'à la seconde choisie

Incident à 14:32
(migration défectueuse)

Une sauvegarde de base nocturne est restaurée, puis le journal des modifications archivé est rejoué dans l'ordre jusqu'à la cible de restauration configurée juste avant l'incident, ce qui produit l'état de la base de données à la seconde choisie.

Deux propriétés découlent du mécanisme. D’abord, le RPO est fixé par la fréquence de capture : des journaux expédiés toutes les quelques secondes signifient quelques secondes de perte maximale, quelle que soit l’heure du dernier snapshot. Ensuite, le RTO est fixé par la distance de rejeu : restaurer à 23:00 depuis une base de 02:00 implique de rejouer 21 heures d’écritures — c’est pourquoi les systèmes de PITR prennent toujours des snapshots fréquents, non pour la granularité, mais pour raccourcir la piste.

Snapshots vs. PITR

DimensionSnapshots seulsPITR (base + rejeu du journal)
Granularité de restaurationLes instants où les snapshots ont été prisN’importe quelle seconde de la fenêtre
RPO typiqueDes heures (l’écart du calendrier)De quelques secondes à quelques minutes
Coût de stockageFaible — n copiesPlus élevé — copies + archive continue du journal
Vitesse de restaurationRapide — on recopiePlus lente — copie + rejeu
Face à l’erreur humaineTout ce qui suit le dernier snapshot est perduPresque rien d’antérieur à l’erreur n’est perdu
ComplexitéMinimaleRéelle — archivage, ordonnancement, cibles

De quelle garantie de restauration avez-vous vraiment besoin ?

Si perdre… est supportableAlors il vous fautÀ surveiller
Une journée d’écrituresDes snapshots nocturnesLa durée de rétention
Une heureSnapshots + sauvegardes incrémentales fréquentesQue le calendrier se déclenche vraiment
Quelques minutes ou moinsCapture continue du journal (PITR)Le retard d’archivage — c’est votre RPO
Rien, jamaisPITR + réplication synchroneLe coût et la latence d’écriture, évalués honnêtement

Cas d’usage courants

  • Le déploiement raté. Une migration ou un hotfix corrompt les données en plein après-midi — restaurez à la seconde qui précède sa mise en production.
  • Les suppressions par erreur de manipulation. Le mauvais tenant, la mauvaise collection ou la mauvaise clause WHERE — revenez juste avant l’exécution de l’instruction, souvent dans une base jetable pour n’en extraire que ce qui a été perdu.
  • Ransomware et compromission de compte. Revenez à l’état antérieur à l’intrusion sur les données — avec le chiffrement au repos pour protéger les copies archivées elles-mêmes.
  • Rétention réglementaire. Les produits réglementés doivent prouver leur capacité de restauration — fenêtres documentées, restaurations testées, exercices auditables.
  • Répétition avant lancement. L’exercice de restauration comme condition de sortie : les équipes qui ont déjà restauré une fois à un horodatage précis le refont sereinement le soir où cela compte.

Devriez-vous vous fier aux sauvegardes par défaut ? Matrice de décision

Les réglages par défaut suffisent quand…Allez au-delà quand…
Perdre une journée de données est gênant, pas fatalLes écritures, c’est de l’argent — commandes, registres comptables, réservations
Le produit n’est pas encore lancé ou reste interneUne heure de perte serait une catastrophe pour le support
Les données peuvent être reconstruites depuis une autre sourceLa base de données est l’unique source de vérité
Personne n’a demandé de garanties de restaurationUn contrat ou un régulateur fixe des valeurs de RPO/RTO
Vous n’avez jamais eu besoin de restaurerVous en avez eu besoin — et c’était tendu

Quoi que fournisse la plateforme, trois décisions vous reviennent : le RPO auquel votre produit peut survivre, le RTO que vos utilisateurs toléreront, et la cadence des exercices qui garde ces deux chiffres honnêtes — la discipline que le guide de planification de continuité du NIST formalise ainsi : définir les objectifs, puis tester par rapport à eux.

Limites et trade-offs

  • La réplication n’est pas une restauration. Les répliques reproduisent l’erreur en quelques secondes ; seules les sauvegardes permettent de revenir avant. Outils différents, catégories de pannes différentes.
  • La fenêtre est finie. Le PITR atteint n’importe quelle seconde — à l’intérieur de la rétention. Des dégâts découverts après la fermeture de la fenêtre sont définitifs ; dimensionnez la rétention sur le délai de détection, pas seulement sur le prix du stockage.
  • Le rejeu prend du temps. Les restaurations chargées en journaux peuvent être longues ; votre RTO réel se mesure lors des exercices, il ne s’affiche pas dans un dashboard.
  • Les restaurations portent sur l’ensemble. Le PITR classique reconstruit toute la base à un horodatage donné ; récupérer les lignes perdues d’une seule table implique de restaurer dans une instance jetable puis de recopier — prévoyez ce workflow.
  • Une sauvegarde jamais testée n’est qu’une rumeur. Exports qui échouent en silence, identifiants expirés, runbooks manquants — tout cela reste invisible jusqu’à ce qu’un exercice ou un sinistre le révèle. Les exercices coûtent moins cher.

PITR et sauvegardes sur Back4app

Back4app est une plateforme open-source de Backend as a Service (BaaS) qui combine une base de données gérée, des API REST et GraphQL générées automatiquement, l’authentification, le stockage de fichiers et des fonctions serverless avec Cloud Code. Les sauvegardes de la base de données gérée s’exécutent selon un calendrier sans aucune configuration, et la restauration est une opération du dashboard plutôt qu’une nuit d’archéologie dans les journaux — la moitié « snapshots et mécanique » de cet article, prise en charge par la plateforme. La moitié qui vous reste, c’est la décision : vos objectifs de RPO et de RTO, vos besoins de rétention, et l’exercice trimestriel au cours duquel les onglets de code ci-dessus vérifient que la chronologie restaurée est exactement celle que vous avez demandée.

Questions fréquentes

Qu'est-ce que le point-in-time recovery, en termes simples ?

Une restauration qui peut atterrir sur n'importe quel instant, et pas seulement aux heures des sauvegardes planifiées. Le moteur part d'une sauvegarde de base et rejoue son journal des modifications — chaque écriture validée, dans l'ordre — en s'arrêtant à la seconde que vous indiquez. Au lieu de perdre tout ce qui s'est passé depuis le snapshot de la nuit dernière, vous ne perdez que ce qui a eu lieu après 14:31:59, la seconde précédant l'incident.

Quelle est la différence entre un snapshot et le PITR ?

La granularité. Un snapshot est une photographie : la restauration atterrit exactement sur l'instant où il a été pris, et tout ce qui suit est perdu. Le PITR est un film : sauvegarde de base plus capture continue du journal, ce qui permet d'arrêter la lecture n'importe où dans la fenêtre de rétention. Les snapshots sont plus simples et moins chers à conserver ; le PITR fait passer la question de la restauration de « quelle nuit ? » à « quelle seconde ? ».

Que sont le RPO et le RTO ?

Les deux chiffres dont parle en secret toute discussion sur les sauvegardes. Le RPO — recovery point objective — est la quantité de données récentes que vous pouvez vous permettre de perdre, fixée par la fréquence des sauvegardes ou de l'envoi des journaux. Le RTO — recovery time objective — est la durée que la restauration peut prendre, fixée par le volume des données et la mécanique de restauration. Des snapshots quotidiens donnent un RPO de plusieurs heures ; la capture continue du journal le ramène à quelques secondes.

La réplication remplace-t-elle les sauvegardes ?

Non — la réplication relève de la disponibilité, pas de la restauration. Une réplique copie fidèlement tout ce que fait le primaire, y compris le DROP TABLE lancé par erreur ; en quelques secondes, toutes les copies s'accordent sur les dégâts. Les sauvegardes et le PITR existent précisément pour revenir à un état *antérieur* à l'erreur, ce qu'aucune réplication ne préserve. Il vous faut les deux, pour des catégories de pannes différentes.

À quelle fréquence faut-il lancer les sauvegardes ?

Partez de votre RPO et remontez. Si perdre une journée d'écritures est supportable, des snapshots nocturnes suffisent ; si une heure fait mal, ajoutez des sauvegardes incrémentales plus fréquentes ; si les minutes comptent, il vous faut une capture continue du journal — et dès lors, la fréquence des snapshots détermine la vitesse de restauration plutôt que la perte de données. Quel que soit le calendrier, la durée de rétention décide jusqu'où les erreurs restent réparables.

Pourquoi les exercices de restauration sont-ils importants ?

Parce qu'une sauvegarde jamais testée est une hypothèse, pas un plan. Les exercices font remonter les défaillances qui n'apparaissent qu'à la pratique : des exports cassés sans bruit, des restaurations qui prennent neuf heures pour un RTO d'une heure, des identifiants manquants, des étapes non documentées. Un exercice trimestriel — restaurer dans un environnement jetable, vérifier les données, chronométrer le processus — transforme l'hypothèse en procédure répétée.

Que faut-il vérifier après la restauration d'une base de données ?

Vérifiez d'abord la chronologie : les enregistrements les plus récents doivent se situer juste avant la cible de restauration, et rien ne doit exister après. Vérifiez ensuite l'intégrité — nombre de lignes conforme aux attentes, invariants critiques, références qui doivent se résoudre. Vérifiez enfin l'application : connectez-vous, déroulez les parcours essentiels, assurez-vous que les jobs en arrière-plan reprennent proprement. Une restauration « terminée » peut encore être fausse sur ces trois plans.

Qui gère les sauvegardes dans un BaaS — la plateforme ou moi ?

La mécanique revient à la plateforme : snapshots, capture du journal, stockage, outils de restauration. Les objectifs restent les vôtres : choisir le RPO et le RTO de votre produit, connaître la fenêtre de rétention, mener les exercices de restauration et conserver un export indépendant si votre politique l'exige. Un backend géré supprime la tuyauterie, pas la responsabilité de décider à quoi ressemble une perte supportable.

Termes associés

À comparer avec

Lectures recommandées

Prêt à construire votre backend ?

Lancez votre projet sur Back4app en quelques minutes — base de données, authentification, API et Cloud Code inclus. Sans carte bancaire.

Écrit et révisé par Back4app Engineering, Back4app Engineering · Publié le 2026-09-16