MDF (Master Database File) est le fichier de base de données principal de MS SQL Server. Chaque base de données SQL Server contient au moins un fichier MDF. Ce fichier de données primaire contient le schéma de la base de données SQL et toutes les données, y compris les index, les vues, les tables, les déclencheurs, les procédures stockées et d’autres composants importants. Ce fichier est donc essentiel pour le stockage des données dans l’environnement MS SQL Server.
Cependant, il arrive que le fichier MDF de la base de données SQL soit corrompu ou endommagé en raison de divers facteurs internes et externes. Si le fichier MDF est corrompu, l’ensemble de la base de données SQL n’est plus disponible. Vous pouvez également recevoir divers messages d’erreur lorsque vous accédez à la base de données SQL. Dans cet article, nous allons examiner les causes de la corruption du fichier MDF et discuter de quelques méthodes efficaces pour réparer le fichier MDF dans SQL Server et récupérer les données.
Causes possibles d’endommagement du fichier MDF
Vous trouverez ci-dessous quelques raisons courantes qui peuvent endommager le fichier MDF de la base de données SQL :
- Panne de courant soudaine ou arrêt du serveur
- Bugs dans le serveur SQL
- Système d’exploitation défectueux
- Le disque dur sur lequel le fichier MDF est stocké présente des secteurs défectueux.
- Arrêt inattendu (brutal) du système ou plantage lorsque le fichier de base de données est ouvert
- Problèmes de matériel ou de logiciel
- Infection par un virus ou un logiciel malveillant
- Espace de stockage insuffisant sur le disque sur lequel le fichier est enregistré
Méthodes efficaces pour réparer les fichiers MDF
Voici quelques méthodes efficaces pour réparer un fichier MDF corrompu et récupérer les données.
Méthode n°1 – Remettre le fichier MDF à partir de la dernière sauvegarde
Si votre fichier MDF est corrompu, vous pouvez d’abord essayer de remettre le fichier à partir d’une sauvegarde, si elle est disponible. Avant de remettre le fichier, vérifiez l’intégrité du fichier de sauvegarde à l’aide de la commande RESTORE VERIFY ONLY (voir ci-dessous) :
RESTORE VERIFYONLY FROM DISK = ‘backup_with_checksum.bak’ (Restaurer VERIFYONLY à partir du disque = ‘backup_with_checksum.bak’)
Copier le code
Vous pouvez utiliser cette commande pour vérifier si le fichier de sauvegarde est lisible, si son format est valide, si le jeu de sauvegarde est complet et si CHECKSUM est compris.
Une fois que vous avez vérifié cela, vous pouvez exécuter la commande suivante pour remettre le fichier de sauvegarde :
RESTORE DATABASE AdventureWorks2022
FROM DISK = ‘Z:\SQLServerBackups\AdventureWorks2022.bak’ ;
RESTORE DATABASE stellardb
Copier le code
Méthode 2 – Réparez le fichier MDF avec la commande DBCC CHECKDB
Si le fichier de sauvegarde n’est pas disponible ou périmé, vous pouvez utiliser la commande de la console de base de données (DBCC CHECKDB) pour réparer le fichier MDF corrompu ou défectueux.
Remarque : Pour utiliser la commande DBCC CHECKDB, vous devez disposer de droits d’administrateur.
Exécutez d’abord la commande DBCC CHECKDB pour rechercher les erreurs d’intégrité et de corruption dans le fichier de base de données (MDF) (voir ci-dessous) :
DBCC CHECKDB Test1Copy Code
Si vous ne pouvez pas accéder au fichier, passez l’état de la base de données en mode d’urgence pour permettre à l’administrateur d’y accéder en lecture seule. Pour mettre la base de données en mode d’urgence, exécutez la commande suivante :
ALTER DATABASE Test1 SET EMERGENCYCopy Code
Exécutez ensuite à nouveau la commande DBCC CHECKDB. Si la commande DBCC CHECKDB détecte une corruption dans la base de données, elle recommande une option de réparation appropriée. Vous pouvez utiliser l’option de réparation pour réparer le fichier MDF corrompu dans SQL Server.
Avant de réparer la base de données, vous devez la mettre en mode mono-utilisateur. Pour configurer la base de données en mode mono-utilisateur, vous devez disposer de l’autorisation ALTER pour la base de données. Exécutez la commande suivante pour mettre la base de données en mode mono-utilisateur :
ALTER DATABASE Test n°1 SET SINGLE_USERCopy Code
Une fois que vous avez configuré la base de données en mode mono-utilisateur, vous pouvez réparer la base de données à l’aide des options suivantes :
- REPAIR_FAST
- REPAIR_REBUILD
- REPAIR_DATA_LOSS_ALLOW
Voyons comment vous pouvez utiliser ces options.
Si vous souhaitez remettre le fichier MDF rapidement, utilisez REPAIR_FAST. Il ne vérifie que la cohérence logique et conserve la syntaxe pour des raisons de compatibilité ascendante. Elle n’est d’aucune aide lors de l’exécution des opérations de réparation. La syntaxe de cette option de réparation est la suivante :
DBCC CHECKDB (‘DB Name’, REPAIR_FAST)Code de copie
Vous pouvez utiliser la commande REPAIR_REBUILD pour remettre en état des pages endommagées ou réparer des lignes manquantes dans des index non groupés. Toutefois, cette commande ne permet pas de réparer une base de données contenant des données FILESTREAM. Voici la commande de réparation de la base de données avec l’option REPAIR_REBUILD :
DBCC CHECKDB (‘DB Name’, REPAIR_REBUILD)Copie du code
Si les options de réparation ci-dessus ne permettent pas de réparer le fichier de base de données, vous devez utiliser l’option REPAIR_ALLOW_DATA_LOSS pour réparer la base de données. Toutefois, cette commande peut entraîner une perte de données. Vous ne devez donc utiliser cette option de réparation qu’en dernier recours. Voici la commande de réparation de la base de données avec l’option REPAIR_ALLOW_DATA_LOSS :
DBCC CHECKDB (‘Nom-DB’, REPAIR_ALLOW_DATA_LOSS)Code de copie
Méthode 3 – Réparez le fichier MDF avec un logiciel tiers de réparation de bases de données SQL
Si les méthodes ci-dessus ne suffisent pas à réparer le fichier MDF corrompu, la meilleure solution consiste à utiliser un logiciel de réparation de fichiers MDF de bases de données SQL de confiance comme Stellar Repair for MS SQL. Il s’agit d’un logiciel avancé pour réparer les fichiers de base de données SQL corrompus (MDF/NDF) sans perte de données. Il peut même réparer les problèmes de corruption graves dans les fichiers MDF et NDF. Il peut récupérer tous les objets du fichier MDF/NDF corrompu avec une intégrité complète. Le logiciel soutient SQL 2022, 2019, 2017, 2016 et les versions antérieures.
Voici quelques caractéristiques notables de ce logiciel :
- Répare les fichiers de base de données SQL endommagés (MDF et NDF)
- Récupération des tables, des déclencheurs, des indices, des clés, des règles et d’autres objets.
- Répare les tables de partition endommagées dans la base de données SQL
- Remet en état les registres de données supprimés des tables de bases de données SQL endommagées.
- Compatible avec les systèmes d’exploitation Windows et Linux
- Permet de rechercher et de remettre en état des objets spécifiques de la base de données.
- Permet d’enregistrer le fichier réparé aux formats MS SQL (MDF), HTML, XLS et CSV.
- Soutien de la récupération des données compressées ROW et PAGE
- Remet toutes les données dans leur format d’origine
- Interface utilisateur interactive et facile à comprendre
Suivez les étapes suivantes pour réparer le fichier MDF à l’aide du logiciel :
- Téléchargez, installez et exécutez le logiciel Stellar Repair for MS SQL.
- Dans la fenêtre Sélectionner une base de données, cliquez sur Parcourir pour sélectionner le fichier MDF (vous pouvez utiliser l’option Rechercher si vous ne savez pas où se trouve votre fichier de données).
- Cliquez ensuite sur le bouton Réparer.
- Cliquez sur OK dans la fenêtre Réparation complète.
- Après la réparation, le logiciel affiche un aperçu du fichier réparé.
- Vous pouvez sélectionner les objets que vous souhaitez sauvegarder. Cliquez ensuite sur le bouton Enregistrer. Vous pouvez enregistrer les données réparées dans une base de données active, dans une nouvelle base de données ou dans d’autres formats tels que CSV, HTML et Excel.
- Sélectionnez l’option de stockage (par exemple, Nouvelle base de données), puis cliquez sur Suivant.
- Sous Connexion au serveur, entrez les données de connexion, sélectionnez le bureau de stockage et cliquez sur Suivant.
- Dans la fenêtre Mode d’enregistrement, sélectionnez le mode d’enregistrement approprié et cliquez sur Enregistrer.
- Cliquez sur OK dans la fenêtre Sauvegarde complète.
Conclusion
En cas d’endommagement du fichier MDF, une sauvegarde permet de remettre les données en état. Cependant, si aucune sauvegarde n’est disponible, vous pouvez utiliser la commande DBCC CHECKDB pour réparer le fichier MDF dans SQL Server. Nous avons expliqué ci-dessus, étape par étape, comment utiliser la commande DBCC CHECKDB. Si la commande DBCC CHECKDB ne donne pas les résultats souhaités, utilisez le logiciel Stellar Repair for MS SQL. Il s’agit d’un logiciel de réparation professionnel qui répare les fichiers de base de données SQL corrompus (fichiers MDF et NDF) sans perte de données.
Was this article helpful?