Symptômes
Supposons que vous activez le Change Tracking pour une ou plusieurs tables dans Microsoft SQL Server 2017 ou 2019 et que vous avez défini AUTO_CLEANUP = ON. Vous remarquez qu’aucune ligne n’est supprimée ou nettoyée des tables latérales ou de la table système sys.syscommittab, même après la période de rétention. En outre, vous remarquez les symptômes suivants :
Si vous vous connectez à l’aide de la connexion d’Administration dédiée et interrogez la version de nettoyage non valide et de nettoyage renforcé, vous trouverez négative :
select * from sys.sysobjValues where ValClass = 7 and objid = 1003 -- Invalid
select * from sys.sysobjValues where valclass = 7 and objid = 1004 -- HardenedSi vous exécutez le SP suivant pour propre manuellement sys.syscommittab, il n’effectuera pas le nettoyage et renverra la version de nettoyage renforcée comme négative :
sp_flush_commit_table_on_demand d’exécution
Sortie
La valeur renvoyée par change_tracking_hardened_cleanup_version() est -nnnnn.Si vous collectez une session d’événement étendue avec événement - change_tracking_cleanup pendant le nettoyage automatique du suivi des modifications, vous remarquerez que CleanupStatusChange est défini sur 32 (erreur) et que le travail de nettoyage existe :
É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 :
À 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 2017
Remarque Pour résoudre ce problème, vous devez activer l’indicateur de trace 8290 et laisser le processus de nettoyage automatique s’exécuter. Une fois cet indicateur de trace activé, le processus de nettoyage automatique du suivi des modifications réinitialise la version de nettoyage non valide en version de nettoyage en fonction de la période de rétention. Cet indicateur de trace peut être activé au niveau de la session ou au démarrage. Afin de comprendre la cause première de la raison pour laquelle la version de nettoyage est devenue négative, il est recommandé d’appeler le support et de fournir plus de détails.
Références
En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.