KB4051356 - 修正: SQL Server 2016 および SQL Server 2017 でメモリ内データベースの復元がエラーで失敗する

適用先
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) SQL Server 2016 Service Pack 1 SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core SQL Server 2017 Developer

現象

たとえば次のようなシナリオを考えてみます。

  • Microsoft SQL Server 2016 または SQL Server 2017 でメモリ内オンライン トランザクション処理 (OLTP) を使用するデータベースがあります。
  • ディスク ドライブには、FULLと表示されている$FSLOGが含まれています。

このシナリオでは、次のいずれかの条件でデータベースのリストアが失敗します。

  • SQL Server サービスを再起動するとき。 この状況でデータベースが再起動すると、データベースの回復が失敗し、5511 エラーが返されることがあります。 さらに、データベースが SUSPECT モードになる場合があります。
  • データベースをバックアップから復元しようとする場合。 この状況では、ファイル システム ログ レコードが破損しているため、データベースがオンラインにならない可能性があります。 たとえば、ファイル名に "ffff" 名前パターンが含まれている場合です。

そのような状況では、次のようなエラー メッセージが表示されることがあります。

注

メッセージ 5511、レベル 16、状態 10
FILESTREAM のファイル システム ログ レコード 'fba1eafd-fc759c68-ffff.045e1502-038a6397-0000.d790ce11-7d80-4654-9ec0-0c7f4f7c5388.0-0.1000016' が破損しています。

メッセージ 3167、レベル 16、状態 1
RESTORE はデータベースを起動できませんでした DatabaseName

メッセージ 3013、レベル 16、状態 1
データベースの復元は異常終了しています。

メッセージ 3414、レベル 21、状態 1
リカバリ中にエラーが発生し、データベース DatabaseName を再起動できません。 回復エラーを診断して修正するか、正常であることが判明しているバックアップから復元します。 エラーが修正されないか、予期されない場合は、テクニカル サポートにお問い合わせください

解決策

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

SQL Server 2017 の累積的な更新プログラム 3

SQL Server 2016 SP1 の累積的な更新プログラム 6

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

SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。

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

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

状態

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

参考資料

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