現象
SQL Server 2012、2014、または 2016 AlwaysOn 可用性グループを使用していて、誤動作するストレージドライバーなどの障害が原因でデータベースに破損したページが含まれていることを前提とします。 この状況では、ページの自動修復機能により、ページがバックグラウンドで自動的に修復されることがあります。 ただし、DBCC CHECKDB または DBCC CHECKTABLE コマンドは、これらの修復されたページでは適切に動作しません。 また、次のような間違ったエラーメッセージが表示されます。
Msg 5262、レベル16、状態1、行 line_id オブジェクト ID object_id、インデックス ID index_id、パーティション ID partition_id、アロケーションユニット ID alloc_unit_id (行データを入力)、ページ (page_id)、行 row_id: 行には、NULL バージョンのバージョン管理のタイムスタンプがありますが、そのバージョンチェーンのポインターは NULL ではありません。 バージョンチェーンはページ (0:0)、スロット1をポイントします。
このエラーメッセージが表示された場合は、データベースが破損しているとは限りません。 代わりに、DBCC コマンドによって、これらのページが修復されたことが認識されないことを示します。 この修正プログラムを適用した後、DBCC コマンドでは、ページが修復されたことが認識され、このエラーメッセージは表示されなくなります。 修復されたページを確認するには、次の動的管理ビュー (DMV) クエリを実行します。
select * from msdb..suspect_pages
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで修正されています。
SQL Server 2016 RTM の累積更新プログラム5
SQL Server 2016 SP1 の累積更新プログラム2
SQL Server 2014 SP2 の累積更新プログラム4
SQL Server 2014 SP1 の累積更新プログラム11
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
SQL Server 2016 の最新の累積的な更新プログラム
SQL Server 2014 の最新の累積的な更新プログラム
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
ソフトウェアの更新を説明するために Microsoft が使用する 用語 について説明します。