Réparation de fichiers
Comment corriger l'erreur « database.mdf n'est pas un fichier de base de données principal (erreur SQL Server : 5171) » ?
September 23, 2026| 7 min read
Summary: Les bases de données SQL peuvent être corrompues pour diverses raisons. Dans cet article, nous décrivons le processus étape par étape pour réparer et récupérer les bases de données corrompues créées dans SQL Server 2005, 2008 r2, 2012, 2014, 2016 et 2019. De plus, nous présentons un outil de réparation MS SQL avancé qui peut réparer rapidement et complètement les bases de données SQL endommagées.
Téléchargement gratuit 100% SécuriséLes fichiers de base de données SQL (.MDF et .NDF) peuvent être corrompus pour diverses raisons, telles que des attaques de virus sur le système, des problèmes logiciels, des pannes matérielles, des coupures de courant soudaines, etc. Si ces fichiers sont corrompus, il se peut que vous ne puissiez pas exécuter les requêtes associées, telles que les instructions SELECT, INSERT, UPDATE et RESTORE.
L'ouverture d'une base de données corrompue peut déclencher diverses erreurs, telles que les erreurs SQL 926, 963 ou 3624. La réparation de la base de données est essentielle pour restaurer l'accès aux données. La corruption de la base de données peut se produire dans n'importe quelle version de SQL Server que vous utilisez. Cet article vous montrera comment réparer SQL Server 2016, 2019, 2014, 2012, 2008 ou 2005.
Avant de poursuivre, examinons les scénarios dans lesquels la réparation de la base de données SQL Server est nécessaire.
Chaque administrateur de base de données ou utilisateur SQL doit disposer d'une stratégie de sauvegarde et de récupération. Si vous disposez d'un fichier de sauvegarde intact, vous pouvez facilement restaurer la base de données SQL à partir de celui-ci. Toutefois, si le fichier de sauvegarde est également corrompu ou obsolète, vous pouvez utiliser les méthodes suivantes pour réparer la base de données corrompue.
La commande DBCC CHECKDB est une commande de console de base de données qui peut être utilisée pour vérifier l'intégrité de la base de données SQL Server, rechercher des problèmes et des erreurs, et réparer la base de données. Elle vérifie l'intégrité physique et logique de tous les objets de la base de données SQL, y compris les pages d'index, les tables système et d'autres structures de mappage. Si l'une de ces vérifications échoue, elle signale des erreurs de cohérence.
Vous pouvez utiliser SQL Server Management Studio (SSMS) pour exécuter la commande DBCC CHECKDB en suivant ces étapes :
Tout d'abord, exécutez la commande DBCC CHECKDB pour détecter toute corruption dans la base de données. Si vous ne pouvez pas accéder à votre base de données, modifiez son statut en « Emergency » à l'aide de la commande suivante :
ALTER DATABASE [test] SET EMERGENCY Copier le code
Ce statut active l'accès en lecture seule à la base de données. Vous pouvez désormais exécuter la commande DBCC CHECKDB sans aucun problème, comme indiqué dans l'exemple.
DBCC CHECKDB (h)Copier le code
Si des dommages sont détectés dans la base de données, l'une des options de réparation suivantes est recommandée :
Vous trouverez ci-dessous les instructions étape par étape pour réparer la base de données à l'aide de l'option REPAIR_ALLOW_DATA_LOSS :
EXEC sp_resetstatus [Nom de la BASE DE DONNÉES]
ALTER DATABASE [Nom de la base de données] SET EMERGENCY
DBCC CHECKDB [Nom de la BASE DE DONNÉES]
ALTER DATABASE [Nom de la base de données] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CHECKDB ('Nom de la base de données', REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS
ALTER DATABASE [nom de la base de données] SET MULTI_USER
Copier le code
Remarque : si vous exécutez la commande avec l'option « REPAIR_ALLOW_DATA_LOSS », la base de données sera réparée et vous pourrez l'ouvrir sans erreur, mais une perte de données peut se produire.
Si la commande DBCC CHECKDB ne parvient pas à réparer ou à restaurer les fichiers de base de données, vous pouvez utiliser Stellar Repair for MS SQL. Il s'agit d'un outil de réparation SQL complet qui permet de réparer et de restaurer rapidement les fichiers de base de données SQL endommagés sans perte de données. Pour utiliser cet outil, veuillez suivre les étapes suivantes :
La base de données réparée sera enregistrée sous le même nom, mais avec le préfixe « Réparée » à l'emplacement spécifié.
Dans cet article, nous avons abordé les cas courants dans lesquels vous pouvez être amené à réparer des bases de données SQL. Si vous disposez d'une sauvegarde à jour, essayez de la restaurer pour récupérer les fichiers MDF/NDF endommagés. Toutefois, si la sauvegarde est corrompue ou illisible, vous pouvez exécuter DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS pour réparer la base de données. Cela ne garantit toutefois pas une récupération complète des données. Vous pouvez opter pour Stellar Repair for MS SQL comme alternative pour réparer les bases de données corrompues et les erreurs associées tout en garantissant l'intégrité complète des données.