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.
Pourquoi est-il nécessaire de réparer la base de données SQL Server ?
Avant de poursuivre, examinons les scénarios dans lesquels la réparation de la base de données SQL Server est nécessaire.
- Si votre base de données est marquée comme suspecte ou se trouve dans un état « en attente de récupération », vous ne pouvez pas accéder aux données.
- Si la base de données a été corrompue en raison d'événements tels qu'une panne de serveur, une défaillance du sous-système d'E/S, des erreurs logicielles, l'intrusion d'un virus/malware, etc.
- Si vous recevez des erreurs SQL telles que 824, 8992, 5172, etc.
- Si vous avez un fichier journal corrompu qui rend impossible l'accès à la base de données.
Méthodes de réparation de la base de données SQL Server
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.
Méthode 1 : utiliser la commande DBCC CHECKDB pour réparer la base de données SQL
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 :
- REPAIR_FAST
- REPAIR_REBUILD
- REPAIR_ALLOW_DATA_LOSS.
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 :
- Commencez par lancer SQL Server Management Studio (SSMS), puis connectez-vous à l'instance SQL Server.
- Recherchez la barre d'outils et cliquez sur « Nouvelle requête ».
- Veuillez copier les commandes suivantes et les coller telles quelles dans la fenêtre de requête qui s'affiche :
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
- Veuillez ensuite cliquer sur l'option « Exécuter ».
- La réparation de la base de données commencera.
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.
Méthode 2 : Utilisez un logiciel de réparation SQL pour réparer la base de données
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 :
- Téléchargez le dernier fichier .exe de Stellar Repair for MS SQL, installez-le et lancez-le.
- Dans la fenêtre « Sélectionner une base de données », cliquez sur « Parcourir » et sélectionnez le fichier de base de données corrompu que vous souhaitez réparer. Si vous ne connaissez pas l'emplacement du fichier de base de données, cliquez sur « Rechercher ».
- Après avoir sélectionné le fichier de base de données souhaité, cliquez sur « Réparer » pour lancer le processus de réparation.
- Sélectionnez un mode d'analyse approprié, tel que « Analyse standard » ou « Analyse avancée ».
- Une fois que le message « Réparation terminée » s'affiche, cliquez sur l'option « OK ».
- Sélectionnez ensuite tous les éléments ou les éléments spécifiques que vous souhaitez enregistrer et cliquez sur le bouton « Enregistrer » sous « Fichier » pour prévisualiser toutes les données réparées dans le fichier.
- Enregistrez ensuite la base de données réparée à l'aide de l'une des options suivantes :
- Sélectionnez le format de fichier souhaité, tel que MDF/CSV/HTML/XLS, pour enregistrer le fichier réparé.
- Vous pouvez enregistrer la base de données en tant que nouvelle base de données ou base de données active.
- Indiquez l'emplacement où vous souhaitez enregistrer la base de données réparée.
- Après avoir effectué votre sélection, cliquez sur « Enregistrer ».
- Une fois le processus d'enregistrement terminé, l'écran « Enregistrement terminé » s'affiche. Veuillez cliquer sur « OK ».
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é.
Conclusion
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.




5 min read


