物理的なcheckdbのみが失敗していますが、完全なcheckdbは正常に完了しています


13

physical_onlyオプションを指定してcheckdbを実行していますが、次のような複数のエラーで失敗します。

メッセージ8965、レベル16、状態1、行1
テーブルエラー:オブジェクトID 1557580587、インデックスID 1、パーティションID 72057594088456192、割り当てユニットID 72057594177454080(行データ型)。ページ(1:13282192)、スロット3、テキストID 6370769698816の行外データノードは、ページ(0:0)、スロット0で参照されますが、スキャンでは表示されませんでした。
メッセージ8965、レベル16、状態1、行1
テーブルエラー:オブジェクトID 1557580587、インデックスID 1、パーティションID 72057594088456192、割り当てユニットID 72057594177454080(行データ型)。ページ(1:13282192)、スロット5、テキストID 6370769764352の行外データノードは、ページ(0:0)、スロット0で参照されますが、スキャンでは表示されませんでした。
CHECKDBは、テーブル 'TableX'(オブジェクトID 1557580587)で0の割り当てエラーと5255の一貫性エラーを検出しました
CHECKDBは、データベース 'DatabaseX'で0の割り当てエラーと5255の一貫性エラーを検出しました。repair_allow_data_lossは、DBCC CHECKDB(DWH_LAND)によって検出されたエラーの最小修復レベルです。

ただし、完全なcheckdbは成功します。

CHECKDBは、データベース 'DatabaseX'で0の割り当てエラーと0の一貫性エラーを検出しました。DBCCの実行が完了しました。DBCCがエラーメッセージを出力した場合は、システム管理者に連絡してください。


TableXには約20万行があり、クラスター化された列ストアインデックスがあります。
次のバージョンのSQL Serverを使用しています:
Microsoft SQL Server 2017(RTM-CU13)(KB4466404)-14.0.3048.4

心配する必要がありますか?

回答:


13

はい、これはCU14までのSQL Server 2017の欠陥です。SQL Server 2016の非クラスター化列ストアインデックスにも同様の問題がありました。

このビデオで詳しく説明しますSQL Server 2017とColumnStoreインデックスのCHECKDBバグ

問題のよりポータブルな再現は次のとおりです。

SELECT *, CONVERT(NVARCHAR(MAX), m.text + m.text + m.text + m.text + m.text) AS texty
INTO dbo.corrupt
FROM sys.messages AS m;

CREATE CLUSTERED COLUMNSTORE INDEX cx_corrupt ON dbo.corrupt;

DBCC CHECKDB WITH PHYSICAL_ONLY;

DROP TABLE dbo.corrupt;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.