KB4563115 - CORRECTIF : le script de mise à niveau échoue si vous utilisez un groupe de haute disponibilité Always On comme réplica secondaire dans SQL Server

S’applique à
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 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows

Symptômes

Supposons que vous utilisez un groupe de haute disponibilité (AG) Always On comme réplica secondaire. Lorsque vous essayez de mettre à niveau Microsoft SQL Server 2016 vers Service Pack 2 (SP2) Mise à jour cumulative 11 (CU11) ou versions ultérieures, le script de mise à niveau échoue, et vous pouvez recevoir les messages d’erreur suivants :

DateTime spidSpidId Mise à niveau des paramètres d’abonnement et des objets système dans la base de données [DatabaseName].

DateTime spidSpidId Échec de la mise à jour de la base de données « DatabaseName » car la base de données est en lecture seule.

DateTime spidSpidId Erreur lors de l’exécution de sp_vupgrade_replication.

Cause

Lorsqu’une mise à niveau est effectuée sur le réplica secondaire d’un AG SQL, il existe une concurrence entre la récupération de la base de données et l’exécution du script de mise à niveau. Par conséquent, le curseur que vous utilisez à l’intérieur de sp_vupgrade_replication ne peut pas filtrer correctement les bases de données en lecture seule. Pendant une courte période, les bases de données secondaires en phase de récupération sont incluses dans la liste des bases de données modifiables. Par conséquent, lorsque vous essayez de mettre à jour ces bases de données, une exception est renvoyée car les bases de données sont en lecture seule.

É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 :

Références

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