Le fichier journal des transactions augmente pour les bases de données avec In-Memory OLTP en SQL Server 2022
Symptômes
Lorsque la fonctionnalité OLTP en mémoire de vos bases de données est activée dans SQL Server 2022, vous remarquez que le fichier journal des transactions augmente en permanence. En outre, le journal des erreurs SQL Server peut contenir des messages tels que Close thread is falling behind: 4 checkpoints outstanding
.
Si vous redémarrez le SQL Server instance, vous remarquerez peut-être que le processus de récupération de la base de données prend beaucoup de temps.
Résoudre le problème avec sys.databases et sys.dm_db_xtp_checkpoint_stats
Lorsque vous utilisez l’affichage catalogue sys.databases pour collecter des informations et résoudre ce problème, la colonne
log_reuse_wait_desc
indiqueXTP_CHECKPOINT
la raison de la troncation longue. Cette valeur indique que le journal des transactions attend qu’un point de contrôle OLTP In-Memory (anciennement appelé Hekaton) se produise. Il suggère un retard dans les opérations de point de contrôle, ce qui peut avoir un impact sur les performances ou la croissance des fichiers journaux.Lorsque vous utilisez le sys.dm_db_xtp_checkpoint_stats de vue de gestion dynamique (DMV) SQL Server pour collecter des informations et résoudre ce problème, la colonne
outstanding_checkpoint_count
affiche une valeur différente de zéro pendant une période prolongée. Cela indique que les points de contrôle ne se produisent pas efficacement, ce qui peut affecter les performances et la croissance des fichiers journaux.
Cause
SQL Server 2022 a introduit de nouvelles fonctionnalités qui améliorent la gestion de la mémoire dans les serveurs de mémoire volumineux afin de réduire les conditions de mémoire insuffisante. Un problème connu dans cette modification peut parfois entraîner le comportement décrit dans la section Symptômes .
Résolution
Pour résoudre le problème, procédez comme suit :
- Ajoutez -T9810 comme paramètre de démarrage pour le SQL Server instance.
- Redémarrez le instance.
- Émettez un point de contrôle, effectuez une sauvegarde de journal, observez
log_reuse_wait_desc
et réduisez le journal si nécessaire pour récupérer de l’espace.
Plus d’informations
L’indicateur de trace 9810 désactive le moteur OLTP In-Memory de récupérer la mémoire tls (Stockage local des threads), ce qui revient au comportement de SQL Server 2019.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour