Symptôme:

Lors de l'attachement d'une base de données .MDF dans SQL Server, le message d'erreur suivant s'affiche :

SQL Server a détecté une erreur d'E/S basée sur la cohérence logique : somme de contrôle incorrecte (attendu : 0x2abc3894 ; réel : 0x2ebe208e). Cela s'est produit lors d'une lecture de la page (1:1) dans la base de données ID 12 au décalage 0x00000000002000 dans le fichier 'xxx.mdf'. Messages supplémentaires dans le SQL Server le journal des erreurs ou le journal des événements système peut fournir plus de détails. Il s'agit d'une condition d'erreur grave qui menace l'intégrité de la base de données et doit être corrigée immédiatement. Effectuez une vérification complète de la cohérence de la base de données (DBCC CHECKDB). Cette erreur peut être causée par de nombreux facteurs ; pour plus d'informations, voir SQL Server Livres en ligne. (Microsoft SQL Server, Erreur : 824)

où 'xxx.mdf' est le nom du fichier MDF auquel on accède.

Parfois, la base de données .MDF peut être attachée avec succès. Cependant, lorsque vous essayez d'exécuter une instruction SQL, telle que

SELECT * FROM [TestDB].[dbo].[test_table_1]

vous obtiendrez également le message d'erreur ci-dessus.

Capture d'écran du message d'erreur :

Explication précise :

Les données du fichier MDF sont stockées sous forme de pages, chaque page fait 8 Ko. Chaque page comporte un champ de somme de contrôle facultatif.

If SQL Server trouve que les valeurs de somme de contrôle dans certaines des pages de données ne sont pas valides, il signalera cette erreur.

Vous pouvez utiliser notre produit DataNumen SQL Recovery pour récupérer les données du fichier MDF corrompu et résoudre cette erreur.

Exemples de fichiers :

Exemples de fichiers MDF corrompus qui provoqueront l'erreur :

SQL Server version Fichier MDF corrompu Fichier MDF fixé par DataNumen SQL Recovery
SQL Server 2005 Erreur4_1.mdf Erreur4_1_fixed.mdf
SQL Server 2008 R2 Erreur4_2.mdf Erreur4_2_fixed.mdf
SQL Server 2012 Erreur4_3.mdf Erreur4_3_fixed.mdf
SQL Server 2014 Erreur4_4.mdf Erreur4_4_fixed.mdf