Symptômes
Prenons le scénario suivant :
- Vous exécutez un serveur qui héberge plusieurs instances avec différentes versions principales, y compris non seulement Microsoft SQL Server 2008, 2008 R2, 2012 ou 2014, mais aussi SQL Server 2016 ou 2017 (cela inclut les instances d’éditions légères telles que SQL Express).
- Vous installez la mise à jour cumulative 2 pour SQL Server 2016 SP2 et la mise à jour cumulative 10 (CU 10) pour SQL Server 2017.
- Vous utilisez une application VSS (Volume Shadow Copy Service) pour sauvegarder une base de données dans un SQL Server instance de la version 2008, 2008 R2, 2012 ou 2014.
- Ou vous lancez une sauvegarde VSS de la machine virtuelle au niveau de l’hôte de virtualisation lorsque le serveur est une machine virtuelle.
Dans ce scénario, l’application VSS peut ne pas collecter correctement les bases de données SQL Server. En outre, un message d’erreur semblable à celui qui suit peut s’afficher dans les journaux d’événements d’application Windows :
Pour une instance de SQL Server 2008 OU 2008 R2
Remarque
État de l’erreur : 1, Gravité : 16
Source : Microsoft SQL Server Native Client 11.0
Message d’erreur : Nom d’objet « master.sys.availability_replicas non valide ».
Remarque : L’erreur se produit lorsque vous exécutez la requête suivante :
declare @sql nvarchar(MAX)DECLARE @DatabaseName VARCHAR(256)set @DatabaseName =N’master’set @sql = SELECT 1 FROM master.sys.availability_replicas AS IN JOIN master.sys.databases AS d ON DB_ID(''' + @DatabaseName + ''') = d.database_id AND ar.replica_id = d.replica_id INNER JOIN master.sys.dm_hadr_availability_replica_states AS st ON ar.replica_id = st.replica_id AND st.role = 2'EXEC(@sql)
Pour un SQL Server 2012 ou SQL Server 2014 instance hébergement AlwaysOn Groupe de disponibilité Bases de données secondaires
Remarque
État de l’erreur : 1, Gravité : 16
Source : Microsoft SQL Server Native Client 11.0
Message d’erreur : Nom de colonne « basic_features non valide ».
Et dans ce cas, la requête rencontrant l’erreur sera :
Remarque
'select database_id, ar.replica_id, replica_server_name, is_primary_replica, ar.group_id, basic_features from master.sys.availability_replicas ar, master.sys.dm_hadr_database_replica_states rs, master.sys.availability_groups ag where database_id = DB_ID(''' + @DatabaseName + ''' ) AND replica_server_name = ''' + @INSTANCENAME + ''' AND ar.replica_id = rs.replica_id AND ar.group_id = ag.group_id'
Résolution
Ce problème est résolu dans les mises à jour cumulatives suivantes pour SQL Server :
Mise à jour cumulative 12 pour SQL Server 2017
Mise à jour cumulative 4 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 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
Dernière mise à jour cumulative pour SQL Server 2016
É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
Découvrez la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.