KB5014298 - 修正: データベースの復元またはログの復元の実行中にエラー 3241 が発生する

適用先
SQL Server 2019 on Windows

現象

Microsoft SQL Server 2019 では、圧縮されたデータベースを復元したり、Transparent Data Encryption (TDE) が有効になっているデータベースのログ バックアップを復元したりすると、次のエラーが発生する場合があります。

注

  • メッセージ 3241、レベル 16、状態 18、行 <LineNumber>
  • デバイス上のメディア ファミリ '<バックアップ ファイル名>' の形式が正しくありません。 SQL Server では、このメディア ファミリを処理できません。

回避策

この問題を回避するには、次のいずれかの方法を使用して TDE が有効なデータベースのバックアップを圧縮しないでください。

解決策

累積的な更新プログラムの情報

この問題は、次の SQL Server 用の累積的な更新プログラムで修正されています。

SQL Server 2019 の累積的な更新プログラム 16

注釈 この問題を回避するには、この修正プログラムと一緒にバックアップを作成する必要があります。 ターゲット インスタンスに修正済みの CU をインストールし、修正プログラムを適用せずに作成された同じバックアップを復元しようとしても機能しません。

詳細情報

重要

SQL Server 2019 CU16 以降、TDE 対応データベースの圧縮バックアップ (データベースまたはログ) の作成には、CU16 以降がインストールされているインスタンスでのみ復元できる新しいバックアップ形式が使用されます。

CU16 以降で作成された TDE 対応データベースの圧縮バックアップを、バージョン CU15 以前の SQL Server 2019 インスタンスに復元すると失敗し、次のエラーが発生します。

  • データベースの復元

    注

    • メッセージ 3013、レベル 16、状態 1、行 <LineNumber>
    • データベースの復元は異常終了しています。
    • メッセージ 9004、レベル 21、状態 1、行 <LineNumber>
    • データベース 'TDE_DB' のログの処理中にエラーが発生しました。 可能であれば、バックアップから復元します。 バックアップが利用できない場合は、ログの再構築が必要になることがあります。
  • 復元ログ

    注

    • 場所: mediaRead.cpp:1018
    • 式: readSize <= m_Demand
    • SPID: 84
    • プロセス ID: ProcessID
    • メッセージ 3013、レベル 16、状態 1、行 <LineNumber>
    • ログの復元が異常終了しています。
    • メッセージ 3624、レベル 20、状態 1、行 <LineNumber>
    • システム アサーション チェックに失敗しました。 詳細については、SQL Server エラー ログを確認してください。 通常、アサーション失敗はソフトウェアのバグまたはデータの破損によって発生します。 データベースの破損をチェックするには、DBCC CHECKDB の実行を検討してください。 セットアップ中にダンプを Microsoft に送信することに同意した場合は、ミニ ダンプが Microsoft に送信されます。 更新プログラムは、Microsoft から最新の Service Pack で入手できるか、テクニカル サポートから提供される修正プログラムで入手できる場合があります。

注釈 RESTORE HEADERONLY および RESTORE FILELISTONLY はこの問題の影響を受けず、すべてのケースで機能します。

上記のシナリオに従って無効な完全バックアップに対して、RESTORE VERIFYONLY が正常に返される場合があります。RESTORE VERIFYONLY に依存して、上記の問題に遭遇することなくバックアップを復元できることを確立しないでください。 ログ バックアップに対する RESTORE VERIFYONLY は、通常、上記の実際の RESTORE LOG と同じエラーとともに失敗します。

したがって、TDE とバックアップ圧縮が有効になっているコンテキストでは、他の SQL Server 2019 インスタンスからのバックアップを使用する SQL Server 2019 インスタンスが、バックアップ マテリアルを生成するインスタンスよりも前に CU16 (またはそれ以降) を受け取ることを確認することが重要です。 ログ配布アーキテクチャは、そのような状況の代表的な例です。最初にセカンダリ インスタンスをアップグレードします。

圧縮を使用してトランザクション ログ バックアップが作成されると、通常、圧縮なしで再作成することはできません。 したがって、このようなコンテキストでログ配布プライマリ サーバーを SQL Server 2019 CU16 以降にアップグレードすると、セカンダリ サーバーもアップグレードされるまで復元ジョブが中断されます。

TDE が有効なデータベースの非圧縮バックアップ、TDE が有効になっていないデータベースの圧縮バックアップ、または TDE が有効になっていないデータベースの非圧縮バックアップでは、CU16 で導入された新しいバックアップ形式は使用されず、任意のバージョンの SQL Server 2019 インスタンスで復元できます。

そのため、TDE が有効なデータベース マテリアル (完全バックアップまたはトランザクション ログ バックアップのいずれか) を SQL Server 2019 CU16 より前のバージョンの SQL Server インスタンスに復元する場合は、バックアップ圧縮を無効にする必要があります。

SQL Server 用の累積的な更新プログラムについて

SQL Server 用の新しい累積的な更新プログラムには、以前のビルドであったすべての修正プログラムとセキュリティ修正プログラムが含まれます。 ご使用のバージョンの SQL Server 用の最新ビルドをインストールすることをお勧めします。

SQL Server 2019 の最新の累積的な更新プログラム

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

参考資料

マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。