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 5028, niveau 16, état 4, ligne 4
Le système n'a pas pu activer suffisamment de base de données pour reconstruire le journal.
Résultats DBCC pour 'xxxx'.
CHECKDB a trouvé 0 erreurs d'allocation et 0 erreurs de cohérence dans la base de données 'xxxx'.
Msg 7909, niveau 20, état 1, ligne 4
La réparation en mode d'urgence a échoué. Vous devez restaurer à partir de la sauvegarde.

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

Msg 5028 erreur n'est ni une erreur d'allocation ni une erreur de cohérence.

Tandis que Msg 7909 est une erreur grave qui peut se produire dans de nombreuses situations chaque fois que SQL Server pense que la base de données est au-delà de la récupération.

Capture d'écran du message d'erreur :

Explication précise :

Le message d'erreur (Msg 5028) semble être lié au fichier LOG. Cependant, il s'agit d'une fausse déclaration. Le problème réel est toujours causé par la corruption de la base de données MDF.

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 causeront le Msg 5028 erreur:

SQL Server version Fichier MDF corrompu Fichier MDF fixé par DataNumen SQL Recovery
SQL Server 2014 Erreur3.mdf Erreur3_fixe.mdf