SQL Server2005で次のような整合性エラーが発生する場合がある。
失敗:(-1073548784) クエリ “DBCC CHECKDB WITH NO_INFOMSGS
” の実行が次のエラーで失敗しました: “オブジェクト ID 60、インデックス ID 1、パーティション ID 281474980642816、アロケーション ユニット ID 71776119065149440 (型 LOB data) のページ (1:193) の PFS 空き領域情報が不適切です。予想値 0_PCT_FULL、実際の値 100_PCT_FULL。
CHECKDB により、テーブル ‘sys.sysobjvalues’ (オブジェクト ID 60) に 0 個のアロケーション エラーと x 個の一貫性エラーが見つかりました。
SQL Serverのバグらしい。
http://www.sqlservercentral.com/Forums/Topic766849-266-1.aspx(英語)
【修復方法】 REPAIR_ALLOW_DATA_LOSSオプションはデーターが失われる可能性があるため注意する必要がある
(1)シングルユーザーモードにする(しないとREPAIR_ALLOW_DATA_LOSSオプションが使えない)
ALTER DATABASE [DB名] SET SINGLE_USER
(2)DBをバックアップ(REPAIR_ALLOW_DATA_LOSSオプションはデーターが失われる可能性があるため)
(3)修復
DBCC CHECKDB (‘DB名’, REPAIR_ALLOW_DATA_LOSS)
(4)整合性チェック
DBCC CHECKDB (‘DB名’)
DBCC CHECKCONSTRAINTS
(5)マルチユーザーモードに戻す
ALTER DATABASE [DB名] SET MULTI_USER
参考:
http://msdn.microsoft.com/ja-jp/library/ms176064.aspx
【注意】
データーが失われる可能性があるためバックアップを取っておくこと.
修復後にデーターが失われていないか確認する手段を準備しておくこと.
修復中はサーバーが無反応に近くなる場合がある.
したがって,あらかじめテスト環境等で作業に要する時間を調査しておくこと.
作業時間には修復に失敗した場合のリストア時間も含めること.

