Comment faire pour résoudre les erreurs de cohérence de base de données signalées par DBCC CHECKB

Traductions disponibles Traductions disponibles
Numéro d'article: 2015748 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Symptômes

Lors de l'exécution du DBCC CHECKDB (ou autres commandes similaires comme CHECKTABLE), un message tel que le suivant est écrit dans le journal des erreurs SQL Server :

2010-03-31 22:07:06.34 spid53 DBCC CHECKDB (mydb) exécutée par MYDOMAIN\theuser a trouvé des 15 erreurs et réparation des erreurs de 0. Temps écoulé: 0 heures 0 minutes 0 secondes. Capture instantanée de base de données interne a divisé le LSN du point = d 00000026:0000089 : 0001 et premier LSN = c 00000026:0000089 : 0001. Il s'agit d'un message d'information uniquement. Aucune action utilisateur n'est requise.

Ce message indique comment de nombreuses erreurs de cohérence de base de données ont été trouvés et combien ont été réparées (si une option de réparation a été utilisée avec la commande). Ce message est écrit également dans le journal des événements Windows en tant que niveau d'informations message avec EventID = 8957 (même si des erreurs sont signalées à ce message est un Message de niveau d'Information).

Les informations contenues dans le message commençant par « base de données interne d'instantané... » ne s'affiche que si DBCC CHECKDB a été exécuté en ligne, c'est-à-dire si la base de données n'est pas en mode SINGLE_USER. C'est parce que pour un DBCC CHECKDB en ligne, une capture instantanée de base de données interne est utilisée pour présenter un ensemble cohérent de données à vérifier.

Cet article vous explique pas comment résoudre chaque erreur spécifique signalée par DBCC CHECKDB, mais plutôt l'approche générale si des erreurs sont signalées. Toute référence à CHECKDB dans cet article s'applique également aux DBCC CHECKTABLE et CHECKFILEGROUP sauf si expressément.

Cause

DBCC CHECKDB vérifie la cohérence logique et physique des pages de base de données, lignes, pages d'allocation, relations d'index, l'intégrité référentielle de table de résolution et autres contrôles de structure. Si une de ces vérifications échoue (selon les options que vous avez choisi), les erreurs seront signalées dans le cadre de la commande.

La cause de ces problèmes peut varier de corruption des fichiers système, sous-jacente des problèmes liés au matériel système, problèmes de pilote, les pages endommagées dans la mémoire, ou des problèmes avec le moteur de SQL Server. Lisez la section Résolution pour plus d'informations sur la façon de rechercher la cause des erreurs sont signalées.

Résolution

La solution tout d'abord, meilleure si DBCC CHECKDB signale des erreurs de cohérence consiste à restaurer à partir d'une sauvegarde correcte. Toutefois, si vous ne pouvez pas restaurer à partir d'une sauvegarde, CHECKDB fournit une fonctionnalité permettant de réparer les erreurs. Si des problèmes de niveau système tels que le matériel ou le système de fichiers peuvent être à l'origine de ces problèmes, il est recommandé de que vous corriger ces première avant la restauration ou la réparation.

Lorsque vous exécutez DBCC CHECKDB, une recommandation est fourni pour indiquer que l'option de réparation minimale qui est nécessaire pour réparer toutes les erreurs. Ces messages peuvent ressembler à ce qui suit :

CHECKDB a trouvé 0 erreurs d'allocation et 15 erreurs de cohérence dans la base de données « mydb ».
REPAIR_ALLOW_DATA_LOSS est le niveau de réparation pour les erreurs trouvées par DBCC CHECKDB (mydb

La recommandation de réparation est le niveau minimal de réparation pour tenter de résoudre toutes les erreurs de CHECKDB. Cela ne signifie pas que cette option de réparation va résoudre toutes les erreurs. En outre, toutes les erreurs signalées peuvent nécessiter ce niveau de réparation pour résoudre l'erreur. Cela signifie que toutes les erreurs signalées par CHECKDB lorsque repair_allow_data_loss est recommandé entraîne de perte de données. Réparation doit être exécutée pour déterminer si la résolution d'une erreur va entraîner la perte de données. Une technique permettant de limiter les quel sera le niveau de réparation pour chaque table est à utiliser DBCC CHECKTABLE pour n'importe quelle table signale une erreur. Vous verrez ainsi que le niveau minimal de réparation pour une table donnée.

Pour trouver la cause de la raison pour laquelle les erreurs de cohérence de base de données sont sont produites, prenez en compte ces méthodes :

  • Vérifiez le journal des événements système Windows pour n'importe quel niveau du système, le pilote ou le disque erreurs liées
  • Vérifiez l'intégrité du système de fichiers avec la commande chkdsk.
  • Exécutez les diagnostics fournis par les fabricants de votre matériel pour l'ordinateur et/ou le système de disque.
  • Travailler avec votre fournisseur de matériel ou le fabricant du périphérique pour garantir :
    • Les périphériques matériels et la configuration confirme les exigences d'e/s de SQL Server
    • Mise à jour des pilotes de périphériques et autres composants logiciels de prise en charge de tous les périphériques dans le chemin d'e/s
  • Envisagez d'utiliser un utilitaire comme SQLIOSim sur le même lecteur que les bases de données qui ont signalé les erreurs de cohérence. SQLIOSim est un outil indépendant du moteur SQL Server afin de tester l'intégrité des e/s pour le système de disque. Notez que SQLIOSim est livré avec SQL Server 2008 et qu'il ne reuiqre pas un téléchargement distinct.
  • Recherchez les autres erreurs signalées par SQL Server, telles que des Violations d'accès. Ces types de problèmes peuvent provoquer une corruption de base de données : veillez à tout d'abord de résoudre ces erreurs.
  • Assurez-vous que vos bases de données sont à l'aide de l'option PAGE_VERIFY CHECKSUM. Signaler les erreurs de somme de contrôle, il s'agit d'indicateurs la cohérence erreurs se sont produites après que SQL Server a écrit des pages sur le disque afin que votre système de disques doit être vérifiée soigneusement. Pour plus d'informations sur les erreurs de somme de contrôle, voir Comment faire pour résoudre les problèmes de Msg 824 dans SQL Server .
  • Recherchez les erreurs 832 Msg dans le journal des erreurs. Il s'agit des indicateurs de pages mai endommagé lorsqu'ils sont dans le cache avant écrites sur le disque. Pour plus d'informations, consultez Comment faire pour résoudre les problèmes de Msg 832 dans SQL Server .
  • Essayez de restaurer une sauvegarde de base de données que vous savez qui est « Nettoyer » (aucune erreur de CHECKDB) et les sauvegardes de journal des transactions que vous connaissez couvrent le temps lorsque l'erreur a été rencontrée. Si vous pouvez « relire » ce problème par restauration d'une sauvegarde de base de données « propre » et la transaction se connecte, puis contactez le Support technique Microsoft pour obtenir de l'aide.
  • Erreurs de pureté des données peuvent être un problème avec l'application d'insertion ou de mise à jour des données non valides dans les tables SQL Server. Pour plus d'informations sur le dépannage de pureté de données erreurs consultez l'article suivant : résolution des problèmes de DBCC erreur 2570 dans server SQL 2005

Plus d'informations

Pour plus d'informations sur la syntaxe des options/informations sur la façon d'exécuter la commande DBCC CHECKDB, consultez la rubrique documentation en ligne de SQL Server sur la commande DBCC CHECKDB.

Si des erreurs ont été détectées par CHECKDB, des messages supplémentaires à ce qui suit sont signalées dans le journal des erreurs aux fins du rapport d'erreurs :

2010-03-31 22:07:06.34 spid53 à l'aide de 'dbghelp.dll' version '4.0.5'
spid53 de 22:07:06.35 2010-03-31 ** thread de vidage - spid = 0, EC = 0x00000000855F5EB0
spid53 de 22:07:06.35 2010-03-31 *** vidage de pile envoyé vers C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\LOG\SQLDump0012.txt
2010-03-31 22:07:06.35 spid53      * *******************************************************************************
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53 * commencer le vidage de pile :
spid53 de 22:07:06.35 2010-03-31 * 31/03/10 22:07:06 spid 53
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53 * corruption de base de données DBCC
2010-03-31 22:07:06.35 spid53 *
spid53 de 22:07:06.35 2010-03-31 * 84 du tampon d'entrée octets -
2010-03-31 22:07:06.35 spid53 * checkdb(mydb) de dbcc
2010-03-31 22:07:06.35 spid53 *
2010-03-31 22:07:06.35 spid53      * *******************************************************************************
2010-03-31 22:07:06.35 spid53      * -------------------------------------------------------------------------------
2010-03-31 22:07:06.35 spid53 * bref vidage de pile
2010-03-31 22:07:06.38 spid53 la Signature pour le vidage est 0x00000000000001E8
processus de vidage externe 2010-03-31 22:07:07.42 spid53 renvoient le code 0x20002001.
Les informations d'erreur a été envoyées au signalement d'erreurs Watson.

Les fichiers utilisés pour les rapports d'erreur incluent un fichier .txt de SQLDump < nnn >. Ce fichier peut être utile pour des raisons historiques, car elle contient une liste des erreurs trouvées à partir de CHECKDB dans un format XML.

Pour savoir quand la dernière fois que DBCC CHECKDB a été exécuté sans erreurs détectées pour une base de données (le CHECKDB propre connu dernière), vérifiez le journal des erreurs SQL Server pour un message semblable à ce qui suit pour votre base de données ou la base de données système (ce message est écrit sous la forme d'un message de niveau d'informations dans le journal des événements Windows avec EventID = 17573) :

10:13:59.80 2010-04-01 spid7s CHECKDB pour la base de données 'master' terminé sans erreurs sur 22:11:11.417 2010-03-31 (heure locale). Il s'agit d'un message d'information uniquement ; Aucune action utilisateur n'est requise

Remarque Il s'agit d'un article de « PUBLICATION RAPIDE » rédigé directement au sein du service de support technique Microsoft. Les informations qui y sont contenues sont fournies en l'état, en réponse à des problèmes émergents. En raison du délai rapide de mise à disposition, les informations peuvent contenir des erreurs typographiques et, à tout moment et sans préavis, faire l'objet de révisions. Pour d'autres considérations, consultez les Conditions d'utilisation.

Propriétés

Numéro d'article: 2015748 - Dernière mise à jour: mercredi 7 mai 2014 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2014 Developer
  • Microsoft SQL Server 2014 Enterprise
  • Microsoft SQL Server 2014 Express
  • Microsoft SQL Server 2014 Standard
  • Microsoft SQL Server 2014 Web
Mots-clés : 
kbmt KB2015748 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d?une traduction incorrecte du contenu ou de son utilisation par les clients.
La version anglaise de cet article est la suivante: 2015748
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com