現象
たとえば次のようなシナリオを考えてみます。
- 実行しているサーバーは、Microsoft SQL Server 2008、2008 R2、2012、または 2014 だけでなく、SQL Server 2016 または 2017 (これには、SQL Express などのライトウェイト エディションのインスタンスを含む) を含む、異なるメジャー バージョンの複数のインスタンスをホストします。
- SQL Server 2016 SP2 用の累積的な更新プログラム 2 (CU 2) と SQL Server 2017 用の累積的な更新プログラム 10 (CU 10) をインストールします。
- ボリューム シャドウ コピー サービス (VSS) アプリケーションを使用して、バージョン 2008、2008 R2、2012、または 2014 の SQL Server インスタンス内のデータベースをバックアップします。
- または、サーバーが仮想マシンの場合は、仮想化ホスト レベルで VM の VSS 対応バックアップを開始します。
このシナリオでは、VSS アプリケーションによって SQL Server データベースが正常に収集されないことがあります。 また、Windows アプリケーション イベント ログに次のようなエラー メッセージが表示されることがあります。
SQL Server 2008 または 2008 R2 インスタンスの場合
注
エラー状態: 1、重大度: 16
ソース: Microsoft SQL Server Native Client 11.0
エラー メッセージ: オブジェクト名 'master.sys.availability_replicas' が無効です。
メモ: 次のクエリを実行すると、エラーが発生します。
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)
SQL Server 2012 または SQL Server 2014 インスタンスが AlwaysOn 可用性グループ セカンダリ データベースをホストする場合
注
エラー状態: 1、重大度: 16
ソース: Microsoft SQL Server Native Client 11.0
エラー メッセージ: 無効な列名 'basic_features' です。
この場合、エラーが発生するクエリは次のようになります。
注
'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''
解決策
この問題は、次の SQL Server の累積的な更新プログラムで修正されています。
SQL Server 2017 の累積的な更新プログラム 12
SQL Server 2016 SP2 の累積的な更新プログラム 4
SQL Server 用の累積的な更新プログラムについて
SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。
SQL Server 2017 の最新の累積的な更新プログラム
SQL Server 2016 の最新の累積的な更新プログラム
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料
Microsoft がソフトウェア更新プログラムについて説明するために使用する 用語について説明します 。