Vous pouvez rencontrer une affirmation de 'résultat ' LCK_OK' sur un serveur miroir SQL Server

Symptômes

Dans l'architecture miroir Microsoft SQL Server, vous pouvez rencontrer une affirmation SQL Server sur le serveur partenaire (miroir). En outre, vous trouvez un message d'erreur qui ressemble à ce qui suit dans le journal d'erreur sqL Server. Cette erreur signifie généralement que la paire de miroirdoit doit être reconstruite.

Affirmation du serveur SQL : Fichier : loglock.cpp, line '834 Échec De l'affirmation ' 'résultat ' LCK_OK' . Cette erreur peut être liée au calendrier. Si l'erreur persiste après la réexécution de l'instruction, utilisez DBCC CHECKDB pour vérifier l'intégrité structurelle de la base de données ou redémarrez le serveur pour s'assurer que les structures de données en mémoire ne sont pas corrompues. Erreur: 3624, Gravité: 20, État: 1.A vérification de l'affirmation du système a échoué. Vérifiez les détails du journal d'erreur SQL Server. En règle générale, un échec d'affirmation est causé par un bogue logiciel ou la corruption de données. Pour vérifier la corruption dans les bases de données, envisagez d'exécuter DBCC CHECKDB. Si vous avez accepté d'envoyer des vidanges à Microsoft pendant la configuration, un mini dump sera envoyé à Microsoft. Une mise à jour peut être disponible auprès de Microsoft dans le dernier Pack de Service ou dans un QFE à partir du support technique.

Remarque Lorsque ce problème se produit, un fichier mini-dump est généré dans le dossier de journal d'erreur du serveur SQL. Ce fichier a un nom qui ressemble à "SQLDumpnnnn.mdmp."

Cause

Ce problème peut se produire dans plusieurs scénarios différents. Chaque scénario a une cause et une résolution différentes, et chaque scénario peut provoquer le même message d'erreur et l'affirmation de se produire. Notes (en)

  • Bien que la signature d'erreur semble être très spécifique, l'erreur réelle est causée par une affirmation qui a échoué. Par exemple, l'erreur peut être causée par une affirmation qui effectue une vérification proactive dans le code serveur SQL qui valide les conditions « saines » afin d'échouer aussi proprement que possible au lieu de provoquer un plantage à l'échelle du processus.

  • Vous ne pouvez pas facilement déterminer la cause réelle. Microsoft Customer Support Services détermine généralement la cause. Il le fait généralement en recueillant le fichier de sauvegarde complet de la base de données principale et les sauvegardes du journal des transactions qui couvrent le temps du problème. En outre, un fichier complet de vidage de processus du miroir peut être nécessaire pour reproduire le problème dans des paramètres spécifiques.

Résolution

Informations sur le pack de service

Pour résoudre ce problème, obtenez le dernier correctif pour votre version de SQL Server. Pour plus d'informations, consultez le tableau suivant.

Cause

Article de la base de connaissances

D'abord fixé dans

Comportement de verrouillage différent entre le primaire et le miroir

2938828 FIX: Base de données miroir hits affirment et la session de miroir montre état suspendu dans SQL Server 2012 ou SQL Server 2014

2931693 Mise à jour cumulative 1 pour SQL Server 20142931078 Mise à jour cumulative 9 pour SQL Server 2012 SP1

Problèmes d'escalade de verrouillage

953625 FIX: Message d'erreur lorsque SQL Server 2005 synchronise une base de données en miroir: "Expression: résultat ' LCK_OK"

951217 Paquet de mise à jour cumulative 8 pour SQL Server 2005 Service Pack 2

Verrouillage de la migration pendant les fractionnements de pages

974319 FIX: Intermittent message d'erreur et l'échec d'affirmation lorsque vous utilisez la base de données miroir dans SQL Server 2005, dans SQL Server 2008, ou dans SQL Server 2008 R2: "SQL Server Assertion: File: 'lt;loglock.cpp 'gt;, line '823 Failed Assertion ''résultat 'LCK_OK'"

974648 Paquet de mise à jour cumulative 6 pour SQL Server 2005 Service Pack 3975976 Paquet de mise à jour cumulative 8 pour SQL Server 2008975977 Paquet de mise à jour cumulative 5 pour SQL Server 2008 Service Pack 1975976 Cumulative Update package 1 pour SQL Server 2008 R2

Insert en vrac / BCP avec Check_Constraints OFF

SQL Server 2012

Modification des clés de chiffrement :

  • Clé principale de base de données

  • Clé principale d'instance serveur

SQL Server 2012

Opérations de réduction (PurgeIAM) en conflit avec d'autres transactions

982933 Message d'erreur lorsque vous réduisez les fichiers de données sur le principal dans une base de données miroir pour deux serveurs SQL Server 2005

983329 Paquet de mise à jour cumulative 10 pour SQL Server 2005 Service Pack 3

Fractionnement de page suivi d'une escalade de verrouillage suivie d'une désaffectation et d'une allocation de cette page

983564 FIX: Message d'erreur lorsque vous utilisez la mise en miroir de base de données dans Microsoft SQL Server 2005, Microsoft SQL Server 2008, ou Microsoft SQL Server 2008 R2, et une défaillance d'affirmation se produit par intermittence

983329 Paquet de mise à jour cumulative 10 pour SQL Server 2005 Service Pack 32083921 Mise à jour cumulative 9 pour SQL Server 2008 Service Pack 12289254 Mise à jour cumulative 1 pour SQL Server 2008 Service Pack 22261464 Mise à jour cumulative 3 pour SQL Server 2008 R2

Remarques

  • La dernière colonne répertorie uniquement la première build qui contient le correctif. Étant donné que les builds SQL Server sont cumulatifs, les builds ultérieurs tels que SQL Server 2008 R2 SP1 contiennent ces correctifs. Toutefois, ces builds ne sont pas répertoriés dans le tableau.

  • Toute construction plus tard que SQL Server 2005 SP3 Cumulative Update (CU) 10, SQL Server 2008 SP2 CU 1, ou SQL Server 2008 R2 CU3 contient tous les correctifs énumérés pour "lck_ok" scénarios d'affirmation. Au moment où cet article a été écrit, ces builds ont été remplacés par au moins un pack de service complet. Le pack de service doit protéger la plupart des builds installés à jour de SQL Server dans les scénarios fixes. Pour plus d'informations sur la façon d'obtenir le dernier pack de service pour votre version de SQL Server, cliquez sur les numéros d'article suivants pour afficher les articles dans la base de connaissances Microsoft:

    913089 Comment obtenir le dernier pack de service pour SQL Server 2005968382 Comment obtenir le dernier pack de service pour SQL Server 20082527041 Comment obtenir le dernier pack de service pour SQL Server 2008 R2

  • Vous devez savoir que deux scénarios n'ont pas de correctifs disponibles. La raison en est que ces deux problèmes nécessitent une ré-architecture de SQL Server log de transaction internes. Un tel changement ne peut être inclus qu'avec une version majeure de SQL Server. Dans ce cas, le problème est résolu dans Microsoft SQL Server 2012.Le scénario de changement de clé maître est un événement assez rare pour faire du scénario un cas de coin. Cependant, le scénario BCP/Bulk Insert est courant. Étant donné que le scénario BCP/Bulk Insert n'est pas fixé pour SQL Server 2008 et SQL Server 2008 R2, il s'agit de la cause la plus probable connue des affirmations « lck_ok » sur les constructions actuelles de ces produits. Pour plus d'informations sur ce scénario, consultez la section « Plus d'information ».

  • Cet article peut ne pas refléter les problèmes qui ont été découverts après sa publication. Vous pouvez rechercher dans la base de connaissances Microsoft pour n'importe quel nouvel article individuel "Fix" le cas échéant.

Statut

Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Informations supplémentaires

Scénario BCP/Bulk Insert

Une erreur 3624 ainsi qu'une affirmation de « résultat LCK_OK » peuvent se produire sur le partenaire miroir d'un serveur SQL 2008 ou d'un ensemble de miroirs SQL Server 2008 R2 si les conditions suivantes sont vraies :

  • Une activité BCP ou Bulk Insert se produit dans la base de données principale.

  • L'activité d'insertion BCP/Bulk utilise l'option CHECK_CONSTRAINTS OFF. Remarque La valeur par défaut de cette option est OFF.

Pour contourner ce problème, définir l'option CHECK_CONSTRAINTS à ON pour l'opération BCP/Bulk Insert. Les performances de l'opération BCP/Bulk Insert peuvent être affectées. Remarque SQL Server 2012 n'est pas affecté par ce problème.

Références

Pour plus d'informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro d'article suivant pour voir l'article dans la base de connaissances Microsoft :

824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft

Besoin d’aide ?

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoindre Microsoft Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×