Diagnostics SQL Server supplémentaires ajoutés pour détecter des problèmes d'E / S non signalés

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

Sommaire

Symptômes

Si système d'exploitation, un pilote ou problèmes matériels provoquent conditions écriture perdues ou obsolètes lire les conditions, des messages d'erreur liées l'intégrité de données tels que les erreurs 605, 823, 3448 peuvent s'afficher. Messages d'erreur semblables aux exemples suivants peut s'afficher :
2003-07-24 16:43:04.57 spid63 Getpage : bstat = 0 x 9, sstat = 0 x 800, cache
2003-07-24 16:43:04.57 spid63 pageno est/doit être : objid est/doit être :
2003-07-24 16:43:04.57 spid63 (1:7040966)/(1:7040966) 2093354622/2039782424
2003-07-24 16:43:04.57 spid63... IAM indique cette page est affectée à cet objet
2003-07-24 16:52:37.67 spid63 erreur : gravité 605,: 21, état: 1
2003-07-24 16:52:37.67 spid63 essayez extraire page logique (1:7040966) de base de données « pubs » appartient à objet « auteurs', pas à l'objet « titres »
2003-07-24 16:52:40.99 spid63 erreur : gravité 3448,: 21, état: 1
2003-07-24 16:52:40.99 spid63 peut annuler pas journal enregistrement 63361:16876:181, pour l'ID transaction 0:159696956, de page (1:7040977), de base de données 'pubs » (base de données ID 12). Page d'informations : numéro = (63192:958360:10), type = 2. Enregistrer les informations : code d'opération = 2, contexte 1
2003-07-09 14:31:35.92 spid66 erreur : gravité 823,: 24, état: 2
2003-07-09 14:31:35.92 spid66 d'E / S erreur (ID de page incorrecte) détectée pendant la lecture au décalage 0x00000016774000 dans « h:\sql\MSSQL\data\tempdb.mdf »

Résolution

Informations sur le service pack

Pour résoudre ce problème, procurez-vous le dernier service pack Microsoft SQL Server 2000. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
290211 Comment obtenir le dernier pack de service SQL Server 2000

Créer des informations

Microsoft a publié une version de SQL Server qui présente les fonctionnalités de suivi étendu. Ces fonctionnalités sont conçues pour vous aider à résoudre les messages d'erreur décrits dans la section « Symptômes ». Si vous ne pensez pas un système d'exploitation ou un problème de releated matériel, vous devrez peut-être pas appliquer cette version.

La version anglaise de cette version dispose des attributs de fichier (ou version ultérieure) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont exprimées en coordinated universal temps (UTC). Lorsque vous affichez les informations de fichier, il est convertie en heure locale. Pour connaître le décalage entre l'heure UTC et l'heure locale, utilisez l'onglet Fuseau horaire dans l'outil Date et heure du Panneau de configuration.
   Date         Time   Version         Size             File name
   -------------------------------------------------------------------------
   31-May-2003  18:45  2000.80.818.0      78,400 bytes  Console.exe      
   25-Jun-2003  01:01  2000.80.818.0      33,340 bytes  Dbmslpcn.dll     
   25-Apr-2003  02:12                    786,432 bytes  Distmdl.ldf
   25-Apr-2003  02:12                  2,359,296 bytes  Distmdl.mdf
   30-Jan-2003  01:55                        180 bytes  Drop_repl_hotfix.sql
   23-Jun-2003  22:40  2000.80.837.0   1,557,052 bytes  Dtsui.dll        
   23-Jun-2003  22:40  2000.80.837.0     639,552 bytes  Dtswiz.dll       
   24-Apr-2003  02:51                    747,927 bytes  Instdist.sql
   03-May-2003  01:56                      1,581 bytes  Inst_repl_hotfix.sql
   08-Feb-2003  06:40  2000.80.765.0      90,692 bytes  Msgprox.dll      
   01-Apr-2003  02:07                      1,873 bytes  Odsole.sql
   05-Apr-2003  01:46  2000.80.800.0      62,024 bytes  Odsole70.dll     
   07-May-2003  20:41  2000.80.819.0      25,144 bytes  Opends60.dll     
   02-Apr-2003  21:48  2000.80.796.0      57,904 bytes  Osql.exe         
   02-Apr-2003  23:15  2000.80.797.0     279,104 bytes  Pfutil80.dll     
   22-May-2003  22:57                     19,195 bytes  Qfe469571.sql
   11-Jul-2003  17:04                  1,084,147 bytes  Replmerg.sql
   04-Apr-2003  21:53  2000.80.798.0     221,768 bytes  Replprov.dll     
   08-Feb-2003  06:40  2000.80.765.0     307,784 bytes  Replrec.dll      
   11-Jul-2003  16:56                  1,085,925 bytes  Replsys.sql
   01-Jun-2003  01:01  2000.80.818.0     492,096 bytes  Semobj.dll       
   31-May-2003  18:27  2000.80.818.0     172,032 bytes  Semobj.rll
   29-May-2003  00:29                    115,944 bytes  Sp3_serv_uni.sql
   01-Jun-2003  01:01  2000.80.818.0   4,215,360 bytes  Sqldmo.dll       
   07-Apr-2003  17:44                     25,172 bytes  Sqldumper.exe    
   19-Mar-2003  18:20  2000.80.789.0      28,672 bytes  Sqlevn70.rll
   02-Jul-2003  00:18  2000.80.834.0     180,736 bytes  Sqlmap70.dll     
   08-Feb-2003  06:40  2000.80.765.0      57,920 bytes  Sqlrepss.dll     
   01-Aug-2003  00:50  2000.80.847.0   7,594,065 bytes  Sqlservr.exe     
   25-Jul-2003  21:44  2000.80.845.0     590,396 bytes  Sqlsort.dll      
   08-Feb-2003  06:40  2000.80.765.0      45,644 bytes  Sqlvdi.dll       
   25-Jun-2003  01:01  2000.80.818.0      33,340 bytes  Ssmslpcn.dll     
   01-Jun-2003  01:01  2000.80.818.0      82,492 bytes  Ssnetlib.dll     
   01-Jun-2003  01:01  2000.80.818.0      25,148 bytes  Ssnmpn70.dll     
   01-Jun-2003  01:01  2000.80.818.0     158,240 bytes  Svrnetcn.dll     
   31-May-2003  18:59  2000.80.818.0      76,416 bytes  Svrnetcn.exe     
   30-Apr-2003  23:52  2000.80.816.0      45,132 bytes  Ums.dll          
   02-Jul-2003  00:19  2000.80.834.0      98,816 bytes  Xpweb70.dll
note raison de dépendances entre fichiers, la dernière fonctionnalité ou correctif qui contient ces fichiers peut également contenir des fichiers.

Microsoft a confirmé que sous rares et épais charges d'E / S, certaines plates-formes matérielles peuvent renvoyer une obsolètes lire. Si les diagnostics étendus indiquent un obsolètes possible en lecture/perdu écrire condition, contactez votre fournisseur matériel pour le suivi immédiatement les et tester avec l'utilitaire SQLIOStress.

Statut

Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Ce problème a été corrigé dans Microsoft SQL Server 2000 Service Pack 4.

Plus d'informations

Si vous recevez un des messages d'erreur qui sont mentionnés dans la section « Symptômes » et ne peut pas être expliqués par un événement comme un échec de lecteur physique, puis examinez aucun problème connu sur SQL Server, le système d'exploitation, les pilotes et le matériel. SQL Server supplémentaires diagnostics ont été ajoutés dans cette version pour détecter les e / S liés externes des problèmes. Les diagnostics supplémentaires essayez fournissent des informations sur les deux conditions suivantes :
  • Perdu écriture : un appel réussi à l'API WriteFile , mais le système d'exploitation, un pilote ou le contrôleur de mise en cache ne pas correctement vider les données sur le média physique même si SQL Server est informé que l'écriture a réussi.
  • Lecture obsolète : un appel réussi à l'API ReadFile , mais le système d'exploitation, un pilote ou le contrôleur de mise en cache renvoie incorrectement une version antérieure de données.
Par exemple, Microsoft a confirmé les scénarios où un appel API WriteFile renvoie comme réussi, mais une lecture immédiate, réussite de la même plage de données renvoie les données anciennes, y compris les données probablement stocké dans un matériel lecture du cache. Parfois, ce problème se produit en raison d'un problème du cache de lecture. Dans d'autres cas, les données en écriture sont jamais écrites sur le disque physique.

Pour activer les diagnostics supplémentaires pour ces types de problèmes, SQL Server a ajouté l'indicateur de suivi 818. Vous pouvez spécifier l'indicateur de suivi 818 comme un paramètre de démarrage,-T818, pour l'ordinateur qui exécute SQL Server, ou vous pouvez exécutez l'instruction suivante :
DBCC TRACEON(818, -1)

Indicateur de suivi 818 permet à un tampon en anneau en mémoire est utilisé pour la dernière 2,048 réussi écriture opérations effectuées par l'ordinateur exécutant SQL Server, ne notamment pas trier et workfile e / S de suivi. Lorsque des erreurs comme erreur 605, 823 ou 3448 se produisent, valeur de numéro (numéro) le tampon entrante journal séquence est comparée à la liste d'écriture récents. Si le numéro est extrait pendant l'opération de lecture est plus ancien que celui spécifié lors de l'opération d'écriture, une nouvelle message d'erreur est enregistré dans le journal des erreurs SQL Server. La plupart des opérations d'écriture SQL Server se produisent en tant que points de contrôle ou que l'écriture différée. Une écriture différée est une tâche en arrière-plan qui utilise des e / S asynchrones. L'implémentation du tampon en anneau est léger, rendre ainsi les performances affecte sur le système négligeable.

Le message suivant indique que SQL Server n'a reçu une erreur de l'appel D'API WriteFile ou l'appel API ReadFile . Toutefois, lorsque l'enregistrement a été révisé, la valeur n'a pas correcte :
SQL Server a détecté un niveau de système d'exploitation/matériel non signalé lire ou écrire problème sur la page (1:75007) de base de données 12
Numéro renvoyé (63361:16876:181), numéro prévu (63361:16876:500)
Contactez le fabricant du matériel et envisagez de désactiver la mise en cache mécanismes pour corriger le problème
À ce stade, le cache de lecture contient une version antérieure de la page soit les données n'a pas écrit correctement sur le disque physique. Dans les deux cas (une écriture de perte ou une lecture périmé), SQL Server signale un problème externe avec le système d'exploitation, le pilote ou les couches de matériel.

Si 3448 erreur se produit lorsque vous essayez pour la restauration d'une transaction avec erreur 605 ou Erreur 823, l'ordinateur qui exécute SQL Server automatiquement ferme la base de données et essaie d'ouvrir et récupérer la base de données. La première page qui rencontre des erreurs 605 ou Erreur 823 est considérée comme une page incorrecte et l'ID de page est conservé par l'ordinateur qui exécute SQL Server. Lors de la récupération (avant la phase de rétablir) lorsque l'ID de page incorrect lisez, les détails principales sur l'en-tête de page est enregistrée dans le journal des erreurs SQL Server. Cette action est importante car il aidera à distinguer vos scénarios de perte d'écriture et lecture périmé.

Vous pouvez voir les deux comportements suivants courants dans les scénarios périmé en lecture :
  • Si les fichiers de base de données sont fermées et ensuite ouvert, le correct et plus récemment écrits les données sont renvoyées lors de la récupération.
  • Lorsque vous émettez une point de contrôle et exécutez l'instruction DBCC DROPCLEANBUFFERS (pour supprimer toutes les pages de base de données de la mémoire) et puis exécutez l'instruction DBCC CHECKDB sur la base de données, les données plus récemment écrites sont renvoyées.
Les problèmes mentionnés dans le paragraphe précédent indiquent un problème de mise en cache de lecture et qu'ils sont souvent résolus en désactivant le cache de lecture. Les actions décrites dans le paragraphe précédent généralement forcer une invalidation de cache et les lectures réussies qui se produisent afficher que le média physique est correctement mis à jour. Le comportement écriture perte se produit lorsque la page qui est lu en est toujours l'ancienne version des données, même après un vidage forcé des mécanismes de mise en cache.

Parfois, le problème peut être pas spécifique à un cache matériel. Il peut être un problème avec un pilote de filtre. Dans ce cas, examinez vos logiciels, y compris utilitaires de sauvegarde et les logiciels antivirus et vérifiez s'il existe des problèmes avec le pilote de filtre.

Microsoft a également noter des conditions qui ne répondent pas aux critères d'erreur 605 ou Erreur 823 mais sont provoquées par l'activité de lecture périmé ou perte écriture même. Dans certains cas, une page s'affiche pour être mis à jour deux fois mais avec le même numéro valeur. Ce problème peut se produire si l' ID d'objet et l' ID de page sont correct (page déjà alloué à l'objet), et une modification est apportée à la page et vidée sur le disque. L'extraction de page suivante renvoie une image plus ancienne, et ensuite une seconde modification est apportée. Le journal des transactions SQL Server indique que la page a été mis à jour deux fois avec la même valeur de numéro. Cette action est un problème lorsque vous essayez de restaurer une séquence de journaux de transaction ou données cohérence problèmes, tels qu'échecs de clé étrangères ou entrées de données manquant. Le message d'erreur suivant illustre un exemple de cette condition :
Erreur : 3456, gravité : 21, état: 1 peut rétablir pas enregistrement journal 276666:1664:19, pour l'ID transaction 0:825853240, de page (1:1787100), de base de données « auteurs » (7). NUMÉRO de page: = (276658:4501:9), type = 1. Code d'opération du journal: = 4, 2, contexte PrevPageLSN: (275565:3959:31)

Certaines situations décrites en détail dans les listes suivantes :
  • LSN Sequence		Action
    1			Checkpoint
    2			Begin Transaction
    3			Table created or truncated
    4			Inserts (Pages allocated)
    5			Newly allocated page written to disk by Lazy Writer
    6			Select from table ? Scans IAM chain, newly allocated page read back from disk (LRU | HASHED = 0x9 in getpage message), encounters Error 605 - Invalid Object ID
    7			Rollback of transaction initiated
    
  • LSN Sequence		Action
    1			Checkpoint
    2			Begin Transaction
    3			Page Modification
    4			Page written to disk by Lazy Writer
    5			Page read in for another modification (stale image returned)
    6			Page Modified for a second time but because of stale image does not see first modification 
    7			Rollback ? Fails ? Transaction Log shows two different log records with the same PREV LSN for the page
    
Opérateurs de SQL Server « trier » effectuer des activités d'E / S, principalement vers et depuis la base de données tempdb . Ces opérations d'E / S sont semblables aux opérations d'E / S de tampon ; toutefois, ils ont déjà été conçus pour utilisez logique de nouvelle tentative de lecture pour tenter de résoudre les problèmes similaires. Les diagnostics supplémentaires dans cet article ne s'appliquent pas à ces opérations d'E / S.

Microsoft a indiqué que la cause initiale pour le tri suivant lire échecs est généralement un accès en lecture périmé ou une écriture perte :
2003-04-01 20:13:31.38 spid122 SQL Server assertion : fichier : <p:\sql\ntdbms\storeng\drs\include\record.inl>, ligne = 1447 Échec assertion = ' m_SizeRec > 0 et m_SizeRec < = MAXDATAROW ».

2003-03-29 09:51:41.12 spid57 tri lire Échec (ID de page incorrecte). PageID = (0x1:0x13e9), dbid = 2, fichier = e:\program files\microsoft Server\mssql\data\tempdb.mdf SQL. Nouvelle tentative.

2003-03-29 09:51:41.13 spid57 erreur : gravité 823,: 24, état: 7
2003-03-29 09:51:41.13 spid57 d'E / S erreur (ID de page incorrecte) détectée au cours de lecture au décalage 0x000000027d2000 dans fichier « e:\program files\microsoft SQL Server\mssql\data\tempdb.mdf »

* 00931097 Module(sqlservr+00531097) (utassert_fail + 000002E3)
* 005B1DA8 Module(sqlservr+001B1DA8) (RecBase::Resize + 00000091)
* 00407EE7 Module(sqlservr+00007EE7) (RecBase::LocateColumn + 00000012)
* 00852520 Module(sqlservr+00452520) (mergerow + 000000A4)
* 008522B3 Module(sqlservr+004522B3) (merge_getnext + 00000285)
* 0085207D Module(sqlservr+0045207D) (mergenext + 0000000D)
* 004FC5FB Module(sqlservr+000FC5FB) (getsorted + 00000021)

Les clients qui ont rencontré ces erreurs de tri sont fréquemment résolu les problèmes en déplaçant tempdb sur un lecteur local non mise en cache, ou en désactivant les mécanismes de mise en cache de lecture.

Car un obsolètes lu ou un résultats d'écriture perdues dans stockage de données Qu'est censée pas un large éventail de comportements peuvent se produire. Peut apparaître comme des données manquantes, mais certains des effets plus courantes de données manquantes s'affichent sous forme altérations index, comme erreur 644 ou erreur 625 :
Erreur 644 gravité niveau 21 message texte introuvable l'entrée d'index de RID ' %. * hs de base de » dans index page % S_PGID, index ID %d, données' %. * ls'.
Erreur 625 gravité niveau 21 message texte ne peut pas extraire ligne de page % S_PGID par RID car la slotid (%d) n'est pas valide.
Certains clients ont signalé manquant lignes après qu'ils effectuent ligne nombre activités. Ce problème se produit en raison d'une écriture perdue. Peut-être la page était supposé être lié à la chaîne de page index organisé en clusters. Si l'écriture a été physiquement perdue, les données sont également perdues.

important Si vous rencontrer l'un des comportements, ou si vous êtes suspect de problèmes similaires et avec la désactivation de mécanismes de mise en cache, Microsoft recommande vivement que vous obtenir la dernière mise à jour pour SQL Server et le dernier stress Simulator SQL Server d'E / S. Microsoft encourage également vivement que vous effectuez une révision stricte de votre système d'exploitation et ses configurations associées.

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
231619 Comment faire : utiliser l'utilitaire SQLIOStress pour sous contraintes un sous-système de disque tels que SQL Server
SQL Server nécessite systèmes afin de prendre en charge ? garantie remise aux médias stable ? comme indiqué dans le programme Microsoft SQL Server Always-On stockage solution analyse. FO Pour plus d'informations sur les exigences entrées et de sortie pour le moteur de base de données SQL Server, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
967576 Microsoft SQL Server Database Engine entrée/sortie configuration

Propriétés

Numéro d'article: 826433 - Dernière mise à jour: mardi 5 mai 2009 - Version: 7.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
  • 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 2000 Service Pack 3
Mots-clés : 
kbmt kbhotfixserver kbqfe kbbug kbhardware kbfilter kbdriver kbdatabase kbsysadmin kbinfo KB826433 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 826433
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