Partager via


MSSQLSERVER_9004

S'applique à : SQL Server

Détails

Attribut Valeur
Nom du produit SQL Server
ID de l’événement 9004
Source de l’événement MSSQLSERVER
Composant SQLEngine
Nom symbolique LOG_CORRUPT
Texte du message Une erreur s'est produite lors du traitement du journal de la base de données '%.*ls'. If possible, restore from backup. Si aucune sauvegarde n'est disponible, vous devrez peut-être recréer le journal.

Explication

Une erreur s'est produite lors du traitement du journal, au cours d'une annulation, d'une récupération ou d'une réplication. Cela peut indiquer une erreur détectée par le système d’exploitation ou une erreur de cohérence interne détectée par SQL Server.
SQL Server Moteur de base de données effectue des vérifications logiques sur la cohérence du contenu du journal des transactions lors de sa lecture et de son traitement. Tous les aspects de l’en-tête de journal, des blocs de journal et des enregistrements de journal ne sont pas vérifiés. Le numéro d’état fournit plus d’informations sur le type d’échec :

  • État 1 L’en-tête du fichier journal du fichier journal virtuel (VLF) a été endommagé. Si un en-tête de fichier journal endommagé est trouvé dans le cadre du démarrage de la base de données au démarrage du service, vous ne verrez peut-être que l’erreur 9004 dans ERRORLOG. L’en-tête du fichier journal est la première partie de chaque fichier journal virtuel à l’intérieur d’un journal des transactions. L’en-tête du fichier journal n’est pas le même que l’en-tête de fichier unique, ou les 8 premiers ko, du fichier journal. Si l’en-tête de fichier du fichier journal est endommagé, vous pouvez obtenir le message 5172, comme dans le cas d’un en-tête de fichier de base de données endommagé.
  • États 2 et 3 Un bloc de journal n’était pas valide lors de l’exécution d’une opération RESTORE.
  • États 4 à 12 Il s’agit des différentes vérifications des blocs de journal lors du traitement des enregistrements de journal. Cela inclut la parité, le secteur et d’autres vérifications logiques sur la cohérence du journal des transactions

Dans la plupart des cas, cette erreur se produit uniquement dans ERRORLOG ou le journal des événements d’application Windows, avec EventID = 9004, car l’opération de traitement du journal n’est pas basée sur une commande utilisateur directe (telle que la récupération exécutée au démarrage du moteur SQL Server). Dans ces situations, l’erreur 9004 est souvent détectée avec l’erreur 3414. Toutefois, certaines requêtes, comme ALTER DATABASE, peuvent nécessiter un traitement du journal et, par conséquent, voir ces erreurs. Étant donné que l’erreur a une Severity=21, la session utilisateur est déconnectée.

Cause

L’erreur 9004 est une erreur générale indiquant que le contenu du journal des transactions est endommagé. La raison pour laquelle le journal devient incohérent est semblable à tout problème de corruption de base de données détecté par le moteur SQL Server. Pour déterminer la cause de l’endommagement du journal, vous devez suivre les mêmes techniques que pour l’endommagement de la base de données, notamment une analyse du matériel, du système de fichiers et des problèmes d’E/S possibles. Notez que DBCC CHECKDB ne vérifie pas le journal des transactions dans le cadre de ses opérations et ne peut pas détecter les erreurs d’endommagement du journal. L’erreur 9004 est déclenchée par le moteur SQL Server lui-même.

Action de l’utilisateur

L'une des actions ci-dessous corrigera cette erreur :

  • Restauration à partir d’une sauvegarde : restauration à partir d’une sauvegarde correcte connue pour récupérer à partir de ce problème. Il est possible que, si la partie journal d’une sauvegarde de base de données ou de fichier journal contient des contenus endommagés, vous rencontriez une erreur 9004 lors de RESTORE. Dans ce cas, le journal des transactions de la sauvegarde est endommagé.

  • Régénérer le journal : si vous ne pouvez pas effectuer une restauration à partir d’une sauvegarde, vous pouvez mettre la base de données en ligne en régénérant le journal des transactions. Vous devez soigneusement comprendre les ramifications de la reconstruction du journal des transactions. Cela comprend la perte possible de la cohérence transactionnelle dans votre base de données. Pour plus d’informations sur la régénération du journal des transactions, consultez Résolution des erreurs en mode urgence dans la base de données.

  • Examinez les journaux des problèmes système : vérifiez également le journal des événements système et les journaux d’erreurs pour identifier les problèmes au sein du système susceptibles d’avoir provoqué le problème.