KB4078097 - CORRECTIF : la fonction NEWSEQUENTIALID génère un GUID en double après le redémarrage de SQL Server 2017 sur Linux

S’applique à
SQL Server 2017 Developer Linux SQL Server 2017 Enterprise on Linux SQL Server 2017 Enterprise Core on Linux SQL Server 2017 Standard on Linux

Symptômes

Supposons que vous utilisez la fonction NEWSEQUENTIALID() pour générer un GUID unique pour une table dans SQL Server 2017 sur Linux. Après avoir redémarré le SQL Server, la fonction NEWSEQUENTIALID() peut générer un GUID qui est un doublon d’un GUID précédent généré par cette fonction.

Informations supplémentaires

SQL Server sur Linux stocke la valeur d’amorçage de l’UUID séquentiel dans /var/opt/mssql/.system/instance_id et l’incrémente au démarrage. Effectuez une sauvegarde du fichier instance_id en cas de panne système. Si le fichier est perdu, la valeur initiale est manquante et la nouvelle valeur initiale est régénérée. La génération initiale est basée sur un modèle de bits aléatoire et un UUID pour éviter les collisions. Cependant, la nouvelle semence qui doit être ordonnée séquentiellement peut ne pas l’être après la perte de la semence.

Résolution

Ce problème est résolu dans la mise à jour cumulative suivante pour SQL Server :

Mise à jour cumulative CU 38 pour SQL Server 2017

À 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 2017

É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éférences

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