Je teste mes jeux de sauvegarde à intervalle régulier
Une sauvegarde non testée n'est qu'une hypothèse
Le cours précédent a mis en place, chapitre après chapitre, la sauvegarde du système, des fichiers, de la base de données, des équipements réseau et des machines virtuelles de DKTOYS. Une question reste ouverte, et c'est elle qui ouvre ce dernier cours : ces sauvegardes fonctionnent-elles réellement ? Un fichier de sauvegarde présent sur le NAS, une tâche planifiée qui s'exécute sans erreur visible dans les journaux, ne garantissent pas qu'une restauration à partir de ce fichier réussira le jour où elle sera nécessaire. Cette idée porte parfois le nom de paradoxe de Schrödinger appliqué à la sauvegarde : tant qu'elle n'a pas été restaurée, une sauvegarde est à la fois valide et corrompue — on ne le sait qu'en l'ouvrant.
Ce qui peut rendre une sauvegarde inexploitable sans que rien ne le signale
Plusieurs défaillances passent inaperçues dans un journal d'exécution qui affiche pourtant « succès » :
| Cause | Ce qui se passe | Pourquoi ça passe inaperçu |
|---|---|---|
| Fichier tronqué | Une coupure réseau interrompt le transfert vers le NAS en cours d'écriture | Le fichier existe, sa taille semble plausible, mais son contenu est incomplet |
| Corruption silencieuse du support | Un secteur défaillant sur le disque du NAS altère un bloc de la sauvegarde | Rien ne l'indique tant que le fichier n'est pas relu intégralement |
| Sauvegarde incohérente | Une base de données copiée sans mécanisme de cohérence transactionnelle | Le fichier s'exporte sans erreur, mais son contenu interne est incohérent |
| Dérive de configuration de l'outil | Une exclusion ajoutée par erreur au périmètre sauvegardé | La tâche continue de réussir, mais sur un périmètre réduit |
| Support de restauration manquant | Le pilote ou le support d'amorçage nécessaire à une restauration bare-metal a disparu ou n'a jamais été mis à jour | Ne se révèle qu'au moment précis de la restauration |
Ce tableau justifie, à lui seul, l'existence de ce chapitre : un plan de sauvegarde qui s'arrête à « la tâche s'est bien exécutée » reste incomplet. Il doit inclure des tests de restauration, seuls capables de révéler ces défaillances avant qu'un incident réel ne le fasse à la place.
Trois niveaux de test, du plus simple au plus complet
Tester ses jeux de sauvegarde ne signifie pas nécessairement restaurer un serveur entier à chaque contrôle. Trois niveaux, de complexité croissante, se combinent selon leur fréquence :
| Niveau | Ce qu'il vérifie | Fréquence typique | Effort requis |
|---|---|---|---|
| Contrôle d'intégrité | Le fichier de sauvegarde n'est pas corrompu (somme de contrôle, vérification interne de l'outil) | À chaque exécution, automatisable | Faible |
| Restauration ciblée | Un fichier ou une table isolée se restaure correctement, sur un environnement de test | Hebdomadaire à mensuelle | Modéré |
| Restauration complète | Un système entier (serveur, base) redémarre et fonctionne depuis la sauvegarde, sur une infrastructure isolée | Trimestrielle à semestrielle, ou après tout changement majeur | Élevé |
Ce découpage évite un écueil réaliste pour une équipe de deux personnes comme celle de DKTOYS : viser uniquement le test le plus complet, trop coûteux en temps pour être réellement tenu à intervalle régulier, au risque de ne jamais le faire. Un contrôle d'intégrité automatisé au quotidien, combiné à une restauration ciblée mensuelle et une restauration complète trimestrielle, reste soutenable dans la durée — et vaut infiniment mieux qu'un test complet prévu « quand il y aura le temps », qui ne finit jamais par arriver.
Automatiser le contrôle d'intégrité
Le premier niveau se prête bien à l'automatisation, directement à la suite de la sauvegarde elle-même :
#!/bin/bash
set -euo pipefail
FICHIER="/mnt/nas-local/sauvegardes/bdd/ecommerce_db_$(date +%F).dump"
# pg_restore --list vérifie que l'archive PostgreSQL est lisible et bien structurée,
# sans réellement restaurer les données
if pg_restore --list "$FICHIER" > /dev/null 2>&1; then
echo "Intégrité vérifiée : $FICHIER"
else
echo "ALERTE : archive illisible ou corrompue : $FICHIER" >&2
exit 1
fiCe contrôle ne remplace pas une restauration réelle — il vérifie que l'archive est structurellement lisible, pas que son contenu est fonctionnellement correct — mais il détecte déjà une part significative des incidents les plus fréquents, comme un transfert interrompu ou un fichier tronqué.
Documenter chaque test dans une démarche qualité
Un test de restauration qui n'est pas consigné perd une grande partie de sa valeur : impossible de prouver, plusieurs mois plus tard, que la procédure a réellement été validée récemment. Une fiche de test simple, tenue à jour, suffit :
| Date | Type de test | Système testé | Résultat | Durée constatée | Action corrective |
|---|---|---|---|---|---|
| 2026-06-02 | Restauration ciblée | Table commandes | Réussi | 12 min | Aucune |
| 2026-07-07 | Restauration ciblée | Dossier partagé commercial | Échec (permissions perdues) | — | Script corrigé, option -a ajoutée |
| 2026-09-01 | Restauration complète | Serveur e-commerce | Réussi | 3 h 40 | RTO confirmé conforme à l'objectif |
Cette fiche transforme un principe abstrait — « il faut tester ses sauvegardes » — en une preuve exploitable, et permet de mesurer dans le temps si le RTO fixé au premier cours de ce sous-module reste réaliste : un test qui prend systématiquement plus de temps que le RTO annoncé signale que la procédure, ou les moyens qui la soutiennent, doivent être revus.
Un calendrier annuel pour ne pas dépendre de la mémoire
À titre d'exemple, et non comme une donnée issue des supports de formation, un calendrier de test réaliste pour l'équipe de deux personnes de DKTOYS pourrait se répartir ainsi sur l'année :
| Fréquence | Test | Systèmes concernés | Temps estimé par occurrence |
|---|---|---|---|
| Quotidienne (automatisée) | Contrôle d'intégrité | Toutes les sauvegardes du jour | Quelques minutes, sans intervention humaine |
| Mensuelle | Restauration ciblée | Un système différent chaque mois, en rotation | 15 à 30 minutes |
| Trimestrielle | Restauration complète | Serveur e-commerce (le point critique identifié au premier cours) | Une demi-journée |
| Semestrielle | Restauration complète | Autres serveurs et VM du parc | Une demi-journée |
| Annuelle | Simulation de sinistre complet | Ensemble du PRA, rôles compris (voir le dernier chapitre) | Une journée |
Ce calendrier répartit l'effort dans le temps plutôt que de le concentrer sur une seule échéance annuelle redoutée : la restauration ciblée mensuelle, tournante d'un système à l'autre, garantit qu'aucun périmètre ne reste plus de quelques mois sans avoir été vérifié, sans jamais représenter une charge disproportionnée pour une équipe réduite.
Que faire quand un test échoue de façon répétée
Un test qui échoue une première fois appelle une correction ciblée, comme illustré dans la fiche de suivi ci-dessus. Un test qui échoue de façon répétée sur le même système signale un problème plus structurel, qui mérite une escalade plutôt qu'une nouvelle correction ponctuelle :
- vérifier si les corrections précédentes ont réellement été appliquées à la procédure de sauvegarde elle-même, et pas seulement contournées le temps du test ;
- réévaluer si le RTO ou le RPO fixés pour ce système restent réalistes compte tenu des moyens réellement disponibles, plutôt que de continuer à viser un objectif que la pratique dément régulièrement ;
- documenter l'échec répété dans le PRA lui-même, pour qu'il reste visible au niveau de la direction et ne se limite pas à une note technique connue de la seule équipe informatique.
Ce qu'il faut retenir
Une sauvegarde qui n'a jamais été restaurée reste une hypothèse, jamais une certitude : fichier tronqué, corruption silencieuse, incohérence interne ou dérive de configuration peuvent tous rendre une sauvegarde inexploitable sans qu'aucune alerte ne le signale au moment de sa création. Combiner un contrôle d'intégrité automatisé, des restaurations ciblées régulières et une restauration complète périodique, le tout consigné dans une fiche de suivi, transforme la sauvegarde d'un acte de confiance en une démarche qualité vérifiable. Les supports de ce cours posent l'objectif de tester ses jeux de sauvegarde sans en détailler la méthode ; ce chapitre s'appuie donc sur les pratiques professionnelles reconnues de validation de sauvegarde, appliquées au contexte de DKTOYS. Les deux chapitres suivants mettent ces tests en pratique sur deux cas concrets : la restauration d'un serveur Windows, puis celle d'une base de données et de ses requêtes.