KB4483571-FIX : échec d’assertion potentiel lors de la validation d’une transaction entre bases de données impliquant une base de données de groupe de disponibilité à partir d’un déclencheur SQL Server

Symptômes

Supposez que vous avez au moins un groupe de disponibilité AlwaysOn avec DTC_SUPPORT = PER_DB dans Microsoft SQL Server 2016 ou 2017. Si vous exécutez un déclencheur SQL Server qui contient une transaction de base de données croisée impliquant au moins une des bases de données de groupe de disponibilités, un échec d’assertion est susceptible de se produire. Le journal des erreurs SQL Server signale les messages d’échec d’assertion suivants :

DateHeure spid20s * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *DateTime SPID20S * Begin Stack vidage :DateTime Spid20s * Location : nom de fichier: 3880DateTime spid20s * expression : m_state = = BaseXact :: XACT_PREPARED | | m_state = = BaseXact :: XACT_COMMITTEDDateTime SPID20S * SPID : 20

Erreur DateTime spid20s : 17066, gravité : 16, État : 1.DateTime Spid20s SQL Server assertion : File : <nom de fichier>, ligne =LineNumber Fail assertion = 'm_state = = BaseXact :: XACT_PREPARED | | m_state = = BaseXact :: XACT_COMMITTED'. Cette erreur est éventuellement liée au minutage. Si l’erreur persiste après avoir reexécuté l’instruction, utilisez DBCC CHECKDB pour vérifier l’intégrité structurelle de la base de données, ou redémarrez le serveur pour vérifier que les structures de données en mémoire ne sont pas endommagées.Erreur DateTime spid20s : 3624, gravité : 20, État : 1.DateHeure spid20s une vérification de l’assertion du système a échoué. Pour plus d’informations, consultez le journal des erreurs SQL Server. En règle générale, un échec d’assertion est lié à un bogue logiciel ou à des données endommagées. Pour vérifier la corruption de la base de données, envisagez d’exécuter DBCC CHECKDB. Si vous avez accepté d’envoyer des vidages à Microsoft lors de l’installation, un mini-vidage sera envoyé à Microsoft. Il est possible qu’une mise à jour soit disponible à partir de Microsoft dans le Service Pack le plus récent ou dans un correctif du support technique.

Par ailleurs, vous pouvez recevoir un message d’erreur qui ressemble à ce qui suit :

DateTime Erreur du serveur DateHeure : 19407, gravité : 16, État : 1.

DateHeure Server le bail entre le groupe de disponibilité « nom_groupe » et le cluster de basculement Windows Server a expiré. Un problème de connectivité s’est produit entre l’instance de SQL Server et le cluster de basculement du serveur Windows. Pour déterminer si le groupe de disponibilité ne fonctionne pas correctement, consultez la ressource de groupe disponibilité correspondante dans le cluster de basculement du serveur Windows.

Statut

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

Résolution

Informations de mise à jour cumulative :

Ce problème a été résolu dans les mises à jour cumulatives de SQL Server suivantes :

À propos des mises à jour cumulatives pour SQL Server :Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :

Informations sur le correctif à la demande :

Ce problème a été résolu dans les correctifs à la demande suivants pour SQL Server :

Références

En savoir plus   sur leterminologie utilisée par Microsoft pour décrire les mises à jour logicielles.

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.

×