KB4466108 - REMEDIERE: Efectuarea de copii backup ale unei baze de date SQL Server utilizând o aplicație de backup VSS poate să nu reușească după instalarea SQL Server 2016 și 2017

Se aplică la
SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows 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)

Simptome

Luați în considerare următorul scenariu:

  • Rulați un server care găzduiește mai multe instanțe cu diferite versiuni majore, incluzând nu doar Microsoft SQL Server 2008, 2008 R2, 2012 sau 2014, ci și SQL Server 2016 sau 2017 (Aceasta include instanțele din ediții ușoare, cum ar fi SQL Express).

În acest scenariu, este posibil ca aplicația VSS să nu colecteze cu succes baze de date SQL Server. În plus, este posibil să primiți un mesaj de eroare în jurnalele de evenimente ale aplicației Windows care seamănă cu următorul:

Pentru o instanță SQL Server 2008 SAU 2008 R2

Notă

Stare eroare: 1, Severitate: 16
Sursă: Microsoft SQL Server Native Client 11.0
Mesaj de eroare: Nume de obiect nevalid "master.sys.availability_replicas".

Notă: Eroarea va apărea atunci când executați următoarea interogare:
declare @sql nvarchar(MAX)DECLARE @DatabaseName VARCHAR(256)set @DatabaseName =N'master'set @sql = SELECT 1 FROM master.sys.availability_replicas AS ar INNER 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)

Pentru o instanță SQL Server 2012 sau SQL Server 2014, găzduirea bazelor de date secundare ale grupului de disponibilitate AlwaysOn

Notă

Stare eroare: 1, Severitate: 16
Sursă: Microsoft SQL Server Native Client 11.0
Mesaj de eroare: Numele de coloană nevalid "basic_features".

Și, în acest caz, interogarea care ajunge la eroare va fi:

Notă

'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'

Rezolvare

Această problemă este remediată în următoarele actualizări cumulative pentru SQL Server:

Actualizarea cumulativă 12 pentru SQL Server 2017

Actualizarea cumulativă 4 pentru SQL Server 2016 SP2

Despre actualizările cumulative pentru SQL Server

Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și remedierile de securitate care au fost incluse cu actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:

Cea mai recentă actualizare cumulativă pentru SQL Server 2017

Cea mai recentă actualizare cumulativă pentru SQL Server 2016

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.

Referințe

Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.