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 :
- Mise à jour cumulative 7 pour SQL Server 2019
- Mise à jour cumulative 22 pour SQL Server 2017
- Mise à jour cumulative 13 pour SQL Server 2016 SP2
À 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
- Dernière mise à jour cumulative pour SQL Server 2016
Références
En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.