KB4575939 - CORRECTIF : L’agent de lecture du journal génère une exception de violation d’accès pour la réplication P2P ou transactionnelle avec des tables de partitionnement dans SQL Server

S’applique à
SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2019 on Windows SQL Server 2017 on Windows

Symptômes

Supposons que vous disposez d’une réplication pair à pair (P2P) ou transactionnelle sur des tables partitionnées dans Microsoft SQL Server. Lors d’un changement de partition ou d’une opération de fusion ayant des commandes répliquées en attente dans cette partition, vous remarquez l’entrée d’erreur suivante dans le journal des erreurs de SQL Server :

Remarque

Erreur : 608 : Aucune entrée de catalogue n’a été trouvée pour l’ID de> partition < dans la base de données <DatabaseName>. Les métadonnées sont incohérentes. Exécutez DBCC CHECKDB pour vérifier la case activée pour la corruption des métadonnées.

En outre, l’agent de lecture du journal génère un vidage de violation d’accès.

État

Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Résolution

Ce problème est résolu dans les mises à jour cumulatives suivantes pour SQL Server :

Remarque Après l’application de ce correctif, si vous effectuez un changement de partition ou une opération de fusion avec des commandes répliquées en attente dans cette partition, vous observerez toujours l’erreur 608 dans le journal des erreurs de SQL Server, mais aucun vidage de violation d’accès.

À propos des mises à jour cumulatives pour SQL Server :

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et tous 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 supplémentaires

Si vous activez le basculement de partition sur SQL Server 2008 R2 via la version actuelle, vous devrez peut-être également effectuer des opérations de fractionnement et de fusion dans un avenir proche. Avant d’exécuter une opération de fractionnement ou de fusion sur une table répliquée, assurez-vous que la partition en question n’a pas de commandes répliquées en attente. Vous devez également vous assurer qu’aucune opération DML n’est exécutée sur la partition pendant les opérations de fractionnement et de fusion. S’il existe des transactions que le lecteur de journal n’a pas traitées ou si des opérations DML sont effectuées sur une partition d’une table répliquée alors qu’une opération de fractionnement ou de fusion est exécutée (impliquant la même partition), cela peut entraîner une erreur de traitement avec l’agent de lecture de journal. Afin de corriger l’erreur, une réinitialisation de l’abonnement peut être nécessaire.

Pour plus d’informations, consultez Répliquer les tables partitionnées et les index.

Avertissement

Vous ne devez pas activer le changement de partition pour les publications d’égal à égal en raison de la colonne masquée utilisée pour détecter et résoudre les conflits.

Références

En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.