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 prévue est de 5120 Ko, mais la taille réelle est de 5112 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 les 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 d'une corruption de données.

Capture d'écran du message d'erreur:

Explication précise:

Lorsque la partie de la queue du fichier MDB est supprimée, CHECKDB Informera Msg 5125 erreur et essayez de la réparer. 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 corrigé par DataNumen SQL Recovery
SQL Server 2014 Error8.mdf Error8_fixe.mdf

Références: