Message d’erreur 823 peut indiquer des problèmes de matériel ou système dans SQL Server

Symptômes

Si le message d’erreur suivant s’affiche, cela peut indiquer que Microsoft SQL Server 2000 a détecté des problèmes de matériel ou le système lorsqu’il a été de lecture ou d’écriture dans des fichiers de base de données :
Erreur 823
Erreur d’e/s <erreur> détectée pendant <opération> Offset <offset> dans le fichier ' <fichier>'

Remarque Le format du message d’erreur est légèrement différent dans Microsoft SQL Server 2005 et versions ultérieures. Toutefois, les mêmes concepts et discussions s’appliquent également à ces versions. Pour résoudre ce problème dans SQL Server 2005 et versions ultérieures, consultez la base de connaissances suivant

2015755 : comment faire pour dépanner une erreur Msg 823 dans SQL Server

Pour plus d’informations sur les différentes parties de ce message, tel que <erreur> et le <opération> et pour plus d’informations sur l’utilisation d’appels API de Microsoft Windows qui sont effectuées par SQL Server 2000, reportez-vous à la section « Informations supplémentaires » de cet article.

Résolution

SQL Server 2000 déclenche l’erreur qui est mentionné dans la section « Symptômes » de cet article si les conditions suivantes sont remplies :
  • Erreur de système d’exploitation : un appel API Windows de lecture ou une écriture appel d’API Windows n’a pas réussi et SQL Server rencontre une erreur de système d’exploitation qui est associée à l’appel de l’API Windows. Le message d’erreur suivant est un exemple d’erreur 823 pour un système d’exploitation :
    2003-07-28 09:01:27.38 spid75 erreur : gravité 823, : 24,

    État : 2
    2003-07-28 09:01:27.38 spid75 erreur e/s 1117 (la demande n’a pas pu être effectuée en raison d’une erreur de périphérique d’e/s.) détectée pendant la lecture au décalage 0x0000002d460000 dans le fichier ' e:\program files\Microsoft SQL Server\mssql\data\mydb. MDF'
    À l’exception de l’erreur de système d’exploitation 6 (« le handle est non valide »), les erreurs de système d’exploitation qui sont signalées pour les 823 erreurs sont susceptibles de lié à un problème du système sous-jacent ou un problème matériel. Si une erreur de système d’exploitation se produit, même si l’instruction DBCC CHECKDB ne signale pas de problème, vous devrez peut-être travailler avec votre fournisseur de matériel, l’administrateur système ou le Support technique Microsoft pour résoudre ce problème.

    Remarque Vous pouvez ou pas erreurs risquent d’apparaître à partir de l’instruction DBCC CHECKDB sur la base de données qui est associée au fichier dans le message d’erreur. Vous pouvez exécuter l’instruction DBCC CHECKDB lorsque vous voyez une erreur 823. Si l’instruction DBCC CHECKDB ne signale pas les erreurs, vous avez probablement un problème système intermittent ou un disque.
  • Échec de la logique de vérification d’e/s : si un appel API Windows lecture ou une écriture appel d’API Windows pour un fichier de base de données a réussi, mais des vérifications logiques sur les données ne sont pas réussies (une page endommagée, par exemple), une erreur 823 est déclenché. Le message d’erreur suivant est un exemple d’erreur 823 pour un échec de la logique de vérification d’e/s :
    2003-09-05 16:51:18.90 spid17 erreur : gravité 823, : 24,
    État : 2
    Erreur d’e/s 2003-09-05 16:51:18.90 spid17 (page déchirée) détectée pendant la lecture au décalage 0x00000094004000 dans le fichier ' F:\SQLData\mydb. MDF'...
    Pour résoudre ce problème, vous devez tout d’abord exécuter l’instruction DBCC CHECKDB sur la base de données qui est associée au fichier dans le message d’erreur. Si l’instruction DBCC CHECKDB signale des erreurs, corrigez ces erreurs avant de résoudre ce problème. Si le problème persiste même après que les DBCC CHECKDB erreurs ont été corrigées ou si l’instruction DBCC CHECKDB ne signale pas les erreurs, passez en revue le journal des événements système Microsoft Windows NT pour les erreurs du système ou les erreurs liées au disque. Vous pouvez également contacter votre fournisseur de matériel pour exécuter les tests de diagnostic appropriés.

Plus d'informations

Détails du Message d’erreur

Les parties du message de 823 erreur suivants sont décrits ici plus en détail :
Erreur 823
Erreur d’e/s <erreur> détectée pendant <opération> Offset <offset> dans le fichier ' <fichier>'
Les informations de message de 823 erreur peuvent s’expliquer plus en détail :
  • <erreur> : cela peut être une erreur du système d’exploitation ou un échec de la vérification d’e/s logique. Une erreur de système d’exploitation, le numéro d’erreur de système d’exploitation suit « Erreur d’e/s ». Le texte de l’erreur de système d’exploitation est inclus entre parenthèses après une erreur d’e/s »
    numéro d’erreur».

    Pour un échec de la vérification d’e/s logique, le message d’erreur est à l’intérieur des parenthèses et peut être une des opérations suivantes :
    • (page déchirée) : pour plus d’informations sur les pages déchirées, consultez la documentation en ligne de SQL Server 2000.
    • (ID de page incorrect) : ce message signifie que l’ID de page de l’en-tête de page n’est pas la page attendue qui a été lu à partir du disque. Par exemple, si SQL Server 2000 fournit un fichier de contrepartie pour le fichier de base de données 1 de la page logique 100, pageID dans l’en-tête de page pour cette page de 8 Ko doit être de 1 : 100. Si non, le mauvais ID de page est inclus dans le message d’échec de vérification d’e/s logique.
    • (octets transférés insuffisants) : ce problème indique que l’appel de l’API Windows a réussi, mais les octets qui ont été transférées ont été pas ce qui était attendu.
  • < opération > : il s’agit soit en lecture ou en écriture.
  • < décalage > : c’est l’offset d’octet physique à partir du début du fichier. Division ce nombre par 8192 vous donne le numéro de page logique qui est concerné par l’erreur.
  • < fichier > : Ceci est le fichier qui est associé au problème d’e/s, ainsi que son chemin d’accès physique complet.

SQL Server, les API e/s et Windows

SQL Server 2000 utilise des appels API Windows standard, telles que WriteFileGather, WriteFile, ReadFile et ReadFileScatter pour effectuer des e/s avec ses fichiers de base de données. Lorsque SQL Server 2000 utilise les appels d’API Windows, le fichier a déjà été ouvert avec succès, ou SQL Server 2000 ne serait pas tenter de lire ou d’écrire. Par conséquent, si un appel API Windows ne réussit pas et si l’erreur n’est pas l’erreur de système d’exploitation 6 (« non valide gèrent »), l’erreur est probablement est déclenché dans Windows ou par un composant logiciel de bas niveau, par exemple un pilote de périphérique. Étant donné que l’erreur de système d’exploitation 6 est un handle non valide, le problème peut se produire si SQL Server est à l’aide d’un handle non valide pour appeler une API Windows. Toutefois, il peut rester un problème système.


Par exemple, si vous rencontrez le message d’erreur suivant dans le fichier Errorlog de SQL Server, SQL Server a rencontré l’erreur système 2 lorsqu’il utilise un appel de l’API Windows pour écrire dans le fichier primaire de la base de données tempdb :
Erreur : 823, gravité : 24, état : 4
Erreur d’e/s 2 (le système ne trouve pas le fichier spécifié.) détectée lors de l’écriture au décalage 0x00000000284000 dans le fichier « D:\Program Files\Microsoft SQL Server\MSSQL\data\tempdb.mdf »
Étant donné que SQL Server a déjà ouvert le fichier et n’a reçu une erreur « Gérer non valide », l’erreur est probablement déclenché dans un composant logiciel du noyau de niveau inférieur, tels que le système de fichiers ou un pilote de périphérique. Ce problème n’indique pas un problème dans SQL Server, et il doit en être recherchée comme un problème avec le système de fichiers ou un pilote de périphérique qui est associé au fichier.

Références

Les informations de diagnostic supplémentaires pour les 823 erreurs peuvent être écrit dans le fichier journal des erreurs SQL Server lorsque vous utilisez l’indicateur de trace 818.
Pour plus d’informations sur ces informations, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

826433 PRB : diagnostics supplémentaires de SQL Server pour détecter les problèmes d’e/s non signalés

SQL Server nécessite des systèmes pour prendre en charge la « remise garantie sur un support stable » comme indiqué dans le programme d’évaluation de la Solution Microsoft SQL Server sacoche stockage. FoPour plus d’informations sur la configuration d’entrée 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 :

Configuration requise de base de données moteur d’entrée/sortie 967576 de Microsoft SQL Server

Propriétés

ID d'article : 828339 - Dernière mise à jour : 27 janv. 2017 - Révision : 1

Microsoft SQL Server 2000 Édition 64 bits, Microsoft SQL Server 2000 Analysis Services, Microsoft SQL Server 2000 Édition Développeur, Microsoft SQL Server 2000 Édition Entreprise, Microsoft SQL Server 2000 Enterprise Evaluation Edition, Microsoft SQL Server 2000 Édition Personelle, Microsoft SQL Server 2000 Reporting Services, Microsoft SQL Server 2000 Standard

Commentaires