Lors de l'utilisation de Microsoft SQL Server Pour joindre ou accéder à un fichier de base de données MDF corrompu, vous pouvez rencontrer une variété de messages d'erreur qui peuvent prêter à confusion. Ci-dessous, nous énumérerons toutes les erreurs, triées par fréquence. Pour chaque erreur, nous décrirons ses symptômes, expliquerons la cause exacte et fournirons des exemples de fichiers avec les fichiers corrigés par DataNumen SQL Recovery. Cela vous aidera à mieux comprendre ces erreurs. Remarque 'xxx.MDF' représentera le nom de votre fichier corrompu SQL Server Fichier de base de données MDF.
Basé sur SQL Server ou les messages d'erreur CHECKDB, il existe trois types d'erreurs :
-
- Erreurs d'attribution : Nous savons que les données des fichiers MDF et NDF sont allouées comme pages. Et il y a quelques pages spéciales qui sont utilisées pour la gestion des allocations, comme suit :
Type de page | Description |
Page GAM | Stockez les informations de la carte d'allocation globale (GAM). |
Page SGAM | Stockez les informations de carte d'allocation globale partagée (SGAM). |
Page IAM | Stockez les informations sur la carte d'allocation d'index (IAM). |
Page PSF | Stockez les informations d'allocation PFS. |
Si l'une des pages d'allocation ci-dessus comporte des erreurs ou si les données gérées par ces pages d'allocation ne correspondent pas aux informations d'allocation, alors SQL Server ou CHECKDB rapportera erreurs d'affectation.
- Erreurs de cohérence : Pour pages qui sont utilisées pour stocker des données, y compris les pages de données et les pages d'index, si SQL Server ou CHECKDB trouve toute incohérence entre le contenu de la page et la somme de contrôle, puis ils signaleront erreurs de cohérence.
- Toutes les autres erreurs : Il peut y avoir d'autres erreurs qui ne rentrent pas dans les deux catégories ci-dessus.
- xxxx.mdf n'est pas un fichier de base de données primaire. (Microsoft SQL Server, Erreur : 5171)
- L'en-tête du fichier 'xxxx.mdf' n'est pas un en-tête de fichier de base de données valide. La propriété FILE SIZE est incorrecte.(Microsoft SQL Server, Erreur : 5172)
- SQL Server a détecté une erreur d'E/S basée sur la cohérence logique : somme de contrôle incorrecte
- SQL Server a détecté une erreur d'E/S basée sur la cohérence logique : page déchirée
- Vous supprimez certains enregistrements ou certaines tables de la base de données par erreur.
SQL Server a un outil intégré appelé CCDB, Qui présente VÉRIFIER LA BD et TABLE DE VÉRIFICATION options qui peuvent aider à réparer une base de données MDF corrompue. Cependant, pour les fichiers de base de données MDB gravement endommagés, DBCC CHECKDB et TABLE DE VÉRIFICATION échouera également.
Erreurs de cohérence signalées par CHECKDB :
- SQL Server a détecté une erreur d'E/S basée sur la cohérence logique : somme de contrôle incorrecte
- La ligne dans sys.xxx n'a pas de ligne correspondante dans sys.xxx.
- Erreur de table : l'ID d'objet ##, l'ID d'index ## sera reconstruit.
- Cet index de table système ne peut pas être recréé.
- L'ID d'objet ##, l'ID d'index ##, l'ID de partition ##, l'ID d'unité d'allocation ## (type Inconnu), l'ID de page (## : 560) contient un ID de page incorrect dans son en-tête de page.
Erreurs d'allocation signalées par CHECKDB :
- La page Index Allocation Map (IAM) est pointée par le pointeur suivant de la page IAM
- L'étendue (##:##) dans l'ID de base de données ## est marquée comme allouée dans le GAM, mais aucun SGAM ou IAM ne l'a alloué.
Toutes les autres erreurs signalées par CHECKDB :
- Échec : (-#######) L'exécution de la requête "DBCC CHECKDB(xxxx) WITH NO_INFOMSGS" a échoué avec l'erreur suivante : "xxxx".
- Erreur d'E/S (mauvais ID de page) détectée lors de la lecture à l'offset 0x###### dans le fichier 'xxxx.mdf'.
- Le système n'a pas pu activer suffisamment la base de données pour reconstruire le journal
- Perte de données lors de la réparation avec CHECKDB
- Le fichier semble avoir été tronqué par le système d'exploitation.
- Lors de la répétition d'une opération consignée dans la base de données 'xxxx', une erreur s'est produite au niveau de l'ID d'enregistrement du journal.