web-dev-qa-db-ja.com

dbcc checkdbが「ページのPFS空き容量情報が正しくありません」というエラーを表示する

dbcc checkdb

データベースのクエリでエラーが発生します。それは何ですか、それは危険ですか、どのように解決しますか?

完全なログファイル: ダウンロードファイル または githubで表示 (エラーは文字列364から始まります)

可能性以前にディスクd:\のクラッシュがありました(d:\ Dataに.mdfおよび.ldfファイルがあります)。ディスクがバックアップから復元されました。しかし、これらのエラーがこのハードウェアのクラッシュに関連しているかどうかはわかりません。

「DocStreams」のDBCC結果。メッセージ8914、レベル16、状態1、行1オブジェクトID 1993058136、インデックスID 1、パーティションID 72057594434682880、割り当てユニットID 71906736119218176(タイプLOBデータ)のページ(1:103151)のPFS空き領域情報が正しくありません。期待値0_PCT_FULL、実際の値100_PCT_FULL。メッセージ8914、レベル16、状態1、行1オブジェクトID 1993058136、インデックスID 1、パーティションID 72057594434682880、割り当てユニットID 71906736119218176(タイプLOBデータ)のページ(1:103887)のPFS空き領域情報が正しくありません。期待値0_PCT_FULL、実際の値100_PCT_FULL。メッセージ8914、レベル16、状態1、行1オブジェクトID 1993058136、インデックスID 1、パーティションID 72057594434682880、割り当てユニットID 71906736119218176(タイプLOBデータ)のページ(1:104839)のPFS空き領域情報が正しくありません。期待値0_PCT_FULL、実際の値100_PCT_FULL。

enter image description here

1
Gennady G

ジョンへの返信ありがとうございます!

DBをバックアップしてクラスター化インデックスを再構築しようとしましたが、役に立ちませんでした。私が理解しているように、パッチはありませんが、それは古いバグです。または、ハードウェアのクラッシュ時に実際に何かが破損しました。

これは役立ちました:

--dbcc checkdb;
--dbcc checktable(DocStreams) WITH ALL_ERRORMSGS;

ALTER DATABASE WSS_Content
SET SINGLE_USER WITH ROLLBACK IMMEDIATE

dbcc checktable(DocStreams, REPAIR_FAST) WITH ALL_ERRORMSGS;
GO
dbcc checktable(DocStreams, REPAIR_REBUILD) WITH ALL_ERRORMSGS;

-- use this only if above does not work
--DBCC CHECKTABLE(DocStreams, REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;

ALTER DATABASE WSS_Content SET MULTI_USER;

しかし最初に

  • データベースをバックアップする
  • このコマンドを使用してテーブルもバックアップしました(Enterキーを複数回押します):

    bcp WSS_Content.dbo.DocStreams out C:\ backups\DocStreams\DocStreams.dat -t -T

    一時停止

ご自身の責任で使用してください)

リンク: incorrect-pfsbcp tool

更新:または「最初に(lob_compaction = on)で再編成」を試すことができます( link

1
Gennady G