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 :
- Mise à jour cumulative 9 pour SQL Server 2019
- Mise à jour cumulative 23 pour SQL Server 2017
- Mise à jour cumulative 14 pour SQL Server 2016 SP2
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 :
- Dernière mise à jour cumulative pour SQL Server 2019
- Dernière mise à jour cumulative pour SQL Server 2019
- Dernière mise à jour cumulative pour SQL Server 2016
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.