Symptôme:

Lors de l'utilisation DBCC CHECKDB avec REPAIR_ALLOW_DATA_LOSS paramètre pour réparer une base de données .MDF corrompue, comme ceci :

DBCC CHECKDB(xxxx, 'REPAIR_ALLOW_DATA_LOSS')

vous voyez le message d'erreur suivant :

Msg 5125, niveau 24, état 2, ligne 2
Fichier 'C:Program FilesMicrosoft SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf' semble avoir été tronqué par le système d'exploitation. La taille attendue est de 5120 5112 Ko, mais la taille réelle est de XNUMX XNUMX Ko.
Msg 3414, niveau 21, état 1, ligne 2
Une erreur s'est produite lors de la récupération, empêchant la base de données 'Error1' (39:0) de restarting. Diagnostiquez les erreurs de récupération et corrigez-les, ou restaurez à partir d'une bonne sauvegarde connue. Si des erreurs ne sont pas corrigées ou attendues, contactez le support technique.

où 'Error1' est le nom de la base de données MDF corrompue en cours de réparation.

Msg 5125 l'erreur n'est ni une erreur d'allocation ni une erreur de cohérence. Cela se produit lorsque la partie de la queue du fichier MDB est supprimée, en raison de la corruption des données.

Capture d'écran du message d'erreur :

Explication précise :

Lorsque la partie de la queue du fichier MDB est supprimée, VÉRIFIER LA BD Informera Msg 5125 erreur et essayez de la corriger. Si la base de données ne peut pas être corrigée, elle produira Msg 3414 Erreur.

En fait, la base de données peut également être récupérée si vous utilisez notre produit DataNumen SQL Recovery pour faire la tâche.

Exemples de fichiers :

SQL Server version Fichier MDF corrompu Fichier MDF fixé par DataNumen SQL Recovery
SQL Server 2014 Error8.mdf Error8_fixed.mdf

Références: