MSSQLSERVER_3168
適用対象: SQL Server
詳細
属性 | 値 |
---|---|
製品名 | SQL Server |
イベント ID | 3168 |
イベント ソース | MSSQLSERVER |
コンポーネント | SQLEngine |
シンボル名 | LDDB_SYSTEMWRONGVER |
メッセージ テキスト | デバイス %ls のシステム データベースのバックアップは復元できません。このバックアップを作成したサーバーのバージョン (%ls) とこのサーバーのバージョン (%ls) が異なります。 |
説明
バックアップが最初に作成されたビルドとは異なるサーバー ビルド上のシステム データベース (master、 model、または msdb) のバックアップを復元することはできません。
Note
累積的な更新プログラムやサービス パック、GDR などのサービス更新プログラムをインストールすると、サーバーのビルド番号が変更されます。 サーバー ビルドは常に増分です。
考えられる原因
システム データベースのデータベース スキーマは、サーバー ビルド間で変更される可能性があります。 スキーマの変更によって不整合が発生しないように、RESTORE ステートメントでは、バックアップ ファイルのサーバー ビルド番号と、バックアップを復元しようとしているサーバーのビルド番号を比較します。 ビルドが異なる場合、ステートメントは "3168" エラー メッセージを発行し、復元操作が異常終了します。
この問題が発生する可能性のあるシナリオには、次のようなものがあります。
サーバー B で作成されたバックアップからサーバー A 上のシステム データベースを復元しようとするとします。サーバー A と B は、異なるサーバー ビルド上にあります。 たとえば、サーバー A が最初のリリース バージョンのビルドで、サーバー B が Service Pack 1 (SP1) ビルドであるような場合です。
同じサーバー上で作成されたバックアップからシステム データベースを復元しようとするとします。 ただし、バックアップ プロセスの実行時に、サーバーは別のビルドを実行していました。 つまり、バックアップの作成後にサーバーがアップグレードされました。
ユーザー アクション
この問題を解決するには、次の手順を実行します:
Note
次の手順では、サーバー A はバックアップが作成されるソース SQL Server ベースのサーバーであり、サーバー B はバックアップの復元先となる SQL Server ベースのサーバーです。
次のクエリを使用して、サーバー B (バージョン B) のバージョンを確認します。
SELECT @@VERSION;
次のようなクエリを実行して、ソース バックアップの作成時に実行されていた SQL Server のバージョン (バージョン A) を確認します。
RESTORE headeronly FROM disk = 'c:\sqlbackups\masterdb.bak'
SoftwareVersionMajor
、SoftwareVersionMinor
、およびSoftwareVersionBuild
列の値を確認して、バックアップの作成時に使用されたソース サーバーのビルドを確認します。 たとえば、値は次のようになります。- SoftwareVersionMajor: 15
- SoftwareVersionMinor: 0
- SoftwareVersionBuild: 4236 この場合、バックアップが作成されたときのソース SQL Server バージョンは 15.0.4236 です。
SQL Server の完全なバージョン 一覧テーブルまたは Excel ビルド スプレッドシートを使用してビルドが対応する SQL Server のバージョンを確認します。 たとえば、15.0.4236 は SQL Server 2019 CU16+GDR (バージョン A) にマップされます。
次のいずれかのオプションを使用します。
バージョン A がバージョン B より大きい場合は、 SQL Server の最新の更新プログラムとバージョン履歴 にある情報を使用して、サーバー B をバージョン A と同じビルドにアップグレードします。
バージョン A がバージョン B より小さい場合は、次の手順を使用して、後の更新プログラムを一時的に削除します。
コントロール パネルで、プログラム>プログラムと機能を選択しインストールされている更新プログラムのを選択します。
バージョン B に対応する以降の各更新プログラム パッケージに対応するエントリを見つけます。
エントリを長押し (または右クリック) し、 Uninstall を選択します。
バージョン B がバージョン A と同じであることを確認したら、サーバー B でマスター データベースの復元操作を再試行します。
(推奨)サーバー B を利用可能な最新バージョンに更新し、システム データベースの新しいバックアップを作成します。