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 : page déchirée (signature attendue : 0x######## ; signature réelle : 0x#######). Cela s'est produit lors d'une lecture de la page (#:#) dans l'ID de base de données # à l'offset ### dans le fichier 'xxxx.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.

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. SQL Server utilise deux mécanismes pour s'assurer de la cohérence et de l'intégration des données dans la page, c'est-à-dire la somme de contrôle ou la page déchirée. Les deux sont facultatifs.

If SQL Server trouve que les pages déchirées de certaines 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 Erreur5_1.mdf Erreur5_1_fixed.mdf
SQL Server 2008 R2 Erreur5_2.mdf Erreur5_2_fixed.mdf
SQL Server 2012 Erreur5_3.mdf Erreur5_3_fixed.mdf
SQL Server 2014 Erreur5_4.mdf Erreur5_4_fixed.mdf