Aller au contenu principal
recuperation-proINFO

Récupérer une base SQL, PostgreSQL ou MongoDB corrompue en 2026 : procédures pas-à-pas

MySQL InnoDB innodb_force_recovery, PostgreSQL pg_resetwal, MongoDB --repair, dump collection corrompue, replica set recovery, ateliers spécialisés bases de données et coûts 2026.

Par Eric Gerard · Éditeur · Save My Disk11 min de lecturePhoto via Unsplash

La récupération de bases de données représente l'un des chantiers les plus délicats de la discipline data recovery. Contrairement aux fichiers individuels où l'enjeu est binaire (récupéré ou non), une base corrompue peut paraître intacte au démarrage tout en contenant des incohérences silencieuses - index désynchronisés, contraintes violées, transactions partiellement appliquées - qui ne se manifestent que des semaines plus tard sous forme d'erreurs applicatives ou de comptes financiers faux. Cet article documente la procédure complète de récupération MySQL, PostgreSQL et MongoDB, avec les outils natifs, les outils tiers spécialisés, les attentes réalistes de récupération et les seuils où orienter vers un atelier professionnel.

Trois SGBD dominent le segment open-source consumer et SMB en 2026 : MySQL/MariaDB, PostgreSQL (en croissance régulière) et MongoDB (le leader des bases documentaires NoSQL). Chacun adopte une architecture de stockage radicalement différente - InnoDB et ses fichiers .ibd, PostgreSQL et son base/ avec WAL séparés, MongoDB et son moteur WiredTiger avec collections .wt - qui exige des procédures de recovery spécifiques. Aucun outil généraliste de récupération de fichiers (EaseUS, PhotoRec, Recuva) ne suffit ici.

Récupérer le système de fichiers hôte avec EaseUSPour un disque physique corrompu qui héberge la base, EaseUS scanne avant tout dump SGBD · Garantie 30 jours

Affiliation transparente. Save My Disk perçoit une commission si vous achetez une licence via les liens EaseUS de cet article. EaseUS intervient uniquement au niveau système de fichiers - pour la récupération des fichiers .ibd, base/, .wt qui hébergent la base. Pour la récupération transactionnelle elle-même (innodb_force_recovery, pg_resetwal, mongod --repair), nous citons exclusivement les outils SGBD natifs ou Stellar Repair selon notre méthodologie publique.

MySQL et MariaDB : innodb_force_recovery et mysqldump forensique

Le moteur de stockage InnoDB de MySQL 8.0.x et MariaDB 11.x stocke les données dans des fichiers .ibd un par table (file-per-table par défaut depuis MySQL 5.6) ou dans un tablespace partagé ibdata1. Les indexes, les contraintes de clés étrangères, et les triggers vivent dans le .frm (jusqu'à MySQL 5.7) ou dans le dictionary InnoDB (depuis MySQL 8.0). Le binary log (binlog) trace toutes les modifications pour la réplication et le point-in-time recovery.

La corruption typique InnoDB se traduit par un crash au démarrage avec dans error.log un message InnoDB: Database page corruption on disk or a failed file read of page X. La procédure standard exploite le paramètre innodb_force_recovery qui prend des valeurs entières de 0 (mode normal) à 6 (mode forensic maximum). Chaque incrément désactive une protection :

  • 1 désactive les vérifications de page corrompue (perte minimale)
  • 2 désactive le thread purge (peut laisser des transactions zombies)
  • 3 désactive le rollback des transactions (modifications partielles persistent)
  • 4 désactive l'insert buffer merge (incohérences index)
  • 5 désactive le redo log (perte transactions non-checkpoint)
  • 6 désactive crash recovery au démarrage (corruption sévère ignorée)

Les niveaux 1 à 3 résolvent la grande majorité des cas, le niveau 1 seul en couvrant déjà beaucoup. Au-delà du niveau 3, l'export immédiat via mysqldump --all-databases --routines --triggers --single-transaction reste la seule voie sûre - toute écriture ultérieure risque la corruption irréversible.

L'outil Stellar Repair for MySQL 7 (publié en mars 2026, 299 $) propose une analyse forensique des fichiers .ibd hors connexion qui complète innodb_force_recovery pour les cas où le serveur ne démarre plus du tout. Il récupère une large part des lignes sur des .ibd corrompus avec page header intact.

PostgreSQL : pg_resetwal, point-in-time recovery et standby

PostgreSQL 16.x sorti en septembre 2023 stocke ses données dans une arborescence data/base/<dbOID>/ avec un fichier par table identifié par OID. Les Write-Ahead Logs (WAL) dans pg_wal/ tracent chaque modification avant validation, et permettent le point-in-time recovery (PITR). Le checkpoint régulier vide les WAL anciens et synchronise les fichiers de données.

La corruption PostgreSQL prend trois formes principales. Premier scénario : crash pendant écriture qui laisse un WAL incomplet. Au redémarrage, PostgreSQL replay le WAL et retrouve un état cohérent. Aucune intervention manuelle n'est nécessaire dans la plupart des cas - le replay automatique du WAL de PostgreSQL s'en charge.

Deuxième scénario : corruption d'une page de table identifiée par le message PANIC: corrupted item pointer. La procédure exige zero_damaged_pages = on dans postgresql.conf au démarrage, qui marque les pages corrompues comme vides plutôt que d'avorter. Les données sur ces pages sont perdues - l'option permet seulement de démarrer pour exporter le reste.

Troisième scénario : impossibilité de démarrer même avec zero_damaged_pages. C'est le cas où pg_resetwal intervient. La documentation postgresql.org insiste : pg_resetwal est une opération de dernier recours qui peut entraîner une perte de données non-checkpoint et des incohérences. À exécuter sur une COPIE du data directory, jamais sur la production.

Choix éditorial
4.5 / 5

Récupérer un disque physique hébergeant PostgreSQL avec EaseUS

Avant pg_resetwal, EaseUS récupère les pg_data files si le filesystem hôte est endommagé

Fondé en 2004Garantie 30 joursVersion gratuite 2 Go
Voir l'offre

Pour les déploiements PostgreSQL avec standby streaming replication (configuration recommandée en production depuis PostgreSQL 12), la procédure recovery devient triviale : promouvoir le standby en primary via pg_ctl promote, puis reconstruire un nouveau standby depuis le nouveau primary. Aucun pg_resetwal nécessaire, aucune perte de données. C'est la raison pour laquelle la plupart des incidents PostgreSQL dans des contextes production bien architecturés se résolvent sans aucun recovery forensique.

MongoDB WiredTiger : --repair, replica set et collection dumping

MongoDB 7.0 sorti en août 2023 utilise exclusivement le moteur de stockage WiredTiger (l'ancien moteur MMAPv1 a été retiré depuis MongoDB 4.2). Les collections sont stockées dans des fichiers .wt par collection, avec un journal WiredTiger séparé pour la durabilité. Les replica sets dupliquent les données sur 3 nodes minimum avec un oplog pour la synchronisation.

La corruption WiredTiger se manifeste typiquement par un crash mongod au démarrage avec un message WT_PANIC: WiredTiger library panic ou Detected unclean shutdown - this should only occur if the storage volume was corrupted. La procédure --repair exécute trois opérations : vérification de chaque page WiredTiger, reconstruction des indexes, et purge des documents corrompus.

mongod --repair --dbpath /var/lib/mongodb

Cette procédure peut prendre de 20 minutes pour une base de 50 Go à plusieurs heures pour une base multi-To. La documentation MongoDB Manual Repair précise que --repair peut effacer définitivement des documents - la copie complète du dbpath est non négociable avant lancement.

Pour les replica sets, la stratégie change radicalement. Le primary corrompu doit être retiré du set (rs.remove("primary:27017")), un secondary sain promu (rs.stepDown() sur le primary problématique force l'élection), puis le node corrompu reconstitué via initial sync. Cette approche évite tout recours à --repair et préserve la cohérence transactionnelle ACID du replica set.

Comparatif d'outils tiers pour bases corrompues

Des disques de stockage montés en rack
Des disques de stockage montés en rack

Quand les outils natifs (innodb_force_recovery, pg_resetwal, --repair) ne suffisent pas, plusieurs outils tiers spécialisés interviennent. Voici les quatre principaux.

OutilSGBD ciblésCapacité 2026Prix licenceVerdict
Stellar Repair for MySQL 7MySQL, MariaDBÉlevé299 $Référence MySQL hors-connexion sur .ibd corrompus
Stellar Repair for MS SQL 11MS SQL Server 2019/2022Élevé599 $Reconstitue MDF/LDF corrompus, certifications MS
EaseUS MS SQL Recovery 4MS SQL Server 2014-2022Bon299 $Interface accessible, yields proches Stellar
MongoDB-tools-extended (open src)MongoDB WiredTiger 5.0-7.0ModéréGratuitScripts Python communautaires, courbe d'apprentissage

Pour PostgreSQL, aucun outil tiers payant n'égale les outils natifs (pg_resetwal, pg_filedump, pg_dirtyread). Les administrateurs PostgreSQL aguerris travaillent exclusivement avec ces outils + une stratégie streaming replication robuste.

Atelier professionnel : seuils d'orientation et coûts 2026

Quatre situations imposent l'orientation vers un atelier spécialisé bases de données plutôt que la tentative interne. Première : encryption Transparent Data Encryption (TDE) MS SQL Server avec clés OEM perdues. Deuxième : Oracle Database avec ASM corrompu, exigeant des compétences DBA Oracle certifiées. Troisième : Cassandra ou ScyllaDB cluster multi-region avec corruption de Merkle trees. Quatrième : volume physique défaillant qui empêche le clonage logiciel du data directory - orientation atelier matériel pour récupération SSD/HDD/NVMe avant toute procédure SGBD.

Les ateliers spécialisés bases de données 2026 incluent Ontrack Database Recovery Services (USA, UK, Allemagne), DriveSavers Database Specialist Team (USA), Stellar Data Recovery Database Services (Inde, présence mondiale), Recoveo Database (Pologne), et Kroll Ontrack Forensics Database (Forensique légal). Tarifs publics observés en mai 2026 :

  • MySQL ou PostgreSQL consumer / SMB : 1 200 à 3 500 € (forfait diagnostic + recovery + restauration)
  • MongoDB WiredTiger replica set : 3 500 à 9 000 € (selon volumétrie et nombre de shards)
  • MS SQL Server enterprise : 5 500 à 16 000 € (MDF/LDF corrompus, TDE activé)
  • Oracle Database enterprise : 9 000 à 28 000 € (ASM, RAC, RMAN forensic)
  • Cassandra / ScyllaDB cluster : 8 000 à 22 000 € (Merkle tree reconstruction, multi-region)

Voir notre guide BitLocker pour les spécificités encryption clé OEM Microsoft. Pour les NAS qui hébergent des bases dockerisées corrompues, consulter notre guide RAID recovery.

Stratégie de prévention 2026 : la seule vraie ligne de défense

La grande majorité des cas de récupération de bases de données auraient été évités ou résolus en moins de 30 minutes si trois pratiques avaient été en place. Premier : backup logique quotidien (mysqldump, pg_dump, mongodump) sur un stockage distant testé par restauration mensuelle. Deuxième : backup physique horaire (Percona XtraBackup, pg_basebackup, MongoDB Cloud Backup) avec snapshot ZFS ou Btrfs du data directory. Troisième : streaming replication ou replica set avec au minimum 2 nodes secondaires sur stockage indépendant.

Pour les budgets contraints, le minimum vital reste mysqldump/pg_dump/mongodump quotidien vers un stockage S3 chiffré + test de restauration mensuel sur instance staging. Cette stratégie suffit à transformer un incident catastrophique en simple inconvénient de 2 heures.

Approfondir la récupération SGBD et stockage pro

FAQ - Questions fréquentes sur la récupération base de données

MySQL InnoDB ne démarre plus : quel innodb_force_recovery utiliser ?

Toujours innodb_force_recovery=1 en premier. Les niveaux 1 à 3 suffisent dans la grande majorité des cas. Au-delà de 4, exporter immédiatement via mysqldump --all-databases sans écriture.

PostgreSQL refuse de démarrer après crash : pg_resetwal solution ?

Pas en premier recours. pg_resetwal peut entraîner perte de données validées. Avant tout, tester pg_basebackup depuis standby, vérifier WAL archives, explorer backups physiques. Si inévitable, sur COPIE jamais sur prod.

MongoDB --repair fonctionne sur WiredTiger 7.0.x ?

Oui mais avec limites. Peut effacer définitivement des collections inaccessibles - sauvegarder dbpath complet avant. Pour replica sets, arrêter primary corrompu et restaurer depuis secondary sain via initial sync est plus sûr.

Différence récupération base de données vs système de fichiers classique ?

Trois différences : (1) indexes, contraintes, triggers internes que seuls outils SGBD reconstituent ; (2) formats binaires propriétaires versionnés (.ibd, .wt, base/) ; (3) transactions ACID exigeant binlog, WAL, oplog intacts.

Combien coûte une récupération base de données pro en 2026 ?

MySQL/PostgreSQL consumer : 1 200-3 500 €. MongoDB WiredTiger : 3 500-9 000 €. MS SQL Server : 5 500-16 000 €. Oracle enterprise : 9 000-28 000 €. Cassandra cluster : 8 000-22 000 €. Outils tiers : Stellar 299-599 $, EaseUS MS SQL 299 $.

Verdict : prévention transactionnelle, recovery forensique en second

La récupération de bases de données en 2026 demeure asymétrique : la prévention (backups testés + replication standby + monitoring proactif) coûte une fraction du temps DBA et résout la grande majorité des incidents en quelques minutes. La récupération forensique sans prévention coûte entre 1 200 € et 28 000 € selon le SGBD et la complexité.

Pour MySQL et MariaDB, la combinaison Percona XtraBackup quotidien + binlog activé + mysqldump --single-transaction hebdomadaire suffit à couvrir la grande majorité des scénarios. Pour PostgreSQL, streaming replication avec 1 standby synchrone et 1 standby asynchrone + pg_basebackup hebdomadaire reste l'étalon-or 2026. Pour MongoDB, replica set 3-node minimum avec backups via mongodump quotidiens et MongoDB Cloud Backup mensuel s'impose.

Quand le recovery devient inévitable, la règle absolue tient en une ligne : toujours travailler sur une copie du data directory, jamais sur la production source. Cette simple précaution fait toute la différence : travailler depuis un clone correct protège les données, alors qu'exécuter la procédure directement sur la prod corrompue risque la perte sèche.

Guides liés

Choix éditorial
4.5 / 5

Voir l'offre EaseUS Data Recovery Wizard

30 jours satisfait ou remboursé

Fondé en 2004Garantie 30 joursVersion gratuite 2 Go
Voir l'offre

Questions fréquentes

MySQL InnoDB ne démarre plus : quel niveau de innodb_force_recovery utiliser en premier ?

Toujours commencer par innodb_force_recovery=1 dans my.cnf et redémarrer le service. Les niveaux 1 à 6 désactivent progressivement les vérifications InnoDB (rollback, insert buffer, checkpoint), mais chaque niveau supérieur augmente le risque de corruption irréversible. Les niveaux 1 à 3 suffisent dans la grande majorité des cas. Au-delà de 4, exporter immédiatement via mysqldump --all-databases et ne pas effectuer d'écriture sur la base.

PostgreSQL refuse de démarrer après crash : pg_resetwal est-il la solution ?

Pas en premier recours. pg_resetwal réinitialise les journaux WAL et peut entraîner une perte de données validées récemment. Avant toute exécution, tenter pg_basebackup depuis un standby, vérifier les archives WAL via pg_archivecleanup, et explorer les backups physiques (pg_dump récents). Si pg_resetwal devient inévitable, l'exécuter sur une COPIE du data directory (jamais sur la prod) avec pg_ctl -D /path/to/copy. La documentation officielle insiste sur cette précaution.

MongoDB --repair fonctionne-t-il toujours sur WiredTiger 7.0.x en 2026 ?

Oui mais avec des limites importantes depuis MongoDB 7.0 (sortie 2023). mongod --repair sur WiredTiger reconstitue les index et purge les documents corrompus, mais peut effacer définitivement des collections inaccessibles. Toujours sauvegarder le dbpath complet avant lancement. Pour les replica sets, la procédure recommandée est d'arrêter le primary, restaurer depuis un secondary sain via initial sync, plutôt que de tenter --repair sur le primary corrompu. Voir documentation MongoDB Manual chapitre Repair.

Quelle différence entre récupération base de données et récupération système de fichiers classique ?

Trois différences structurelles. Premièrement, les bases de données stockent en interne des indexes, contraintes, et triggers que les outils généralistes (EaseUS, PhotoRec) ne reconstituent pas - seuls les outils SGBD natifs le font. Deuxièmement, les fichiers de données (.ibd, .frm, base/PG_VERSION, .wt) suivent des formats binaires propriétaires versionnés (MySQL 5.7 vs 8.0, PostgreSQL 14 vs 16, MongoDB 6.0 vs 7.0). Troisièmement, les transactions ACID impliquent des fichiers de journaux (binlog, WAL, oplog) qu'il faut conserver intacts pour la cohérence transactionnelle.

Combien coûte une récupération base de données professionnelle en 2026 ?

Selon les tarifs publics des prestataires spécialisés (Ontrack DataBase Recovery Services, DriveSavers Database, Stellar Repair for Database) mis à jour en mai 2026 : 1 200 à 3 500 € pour une base MySQL ou PostgreSQL consumer avec fichiers .ibd ou pg_data accessibles ; 3 500 à 9 000 € pour MongoDB WiredTiger replica set partiellement corrompu ; 9 000 à 28 000 € pour bases enterprise Oracle, MS SQL Server, ou Cassandra cluster avec encryption matérielle activée. Les outils tiers (Stellar Repair for MySQL 7, EaseUS MS SQL Recovery, MongoDB-tools-extended) sont disponibles à 299-799 $.