web-dev-qa-db-ja.com

DBCC CHECKDBエラー

SQL Serverデータベースに問題があります。これを実行すると:

select  * from dbo.Entity
where Oid='191FAF30-4729-4145-8106-60E34A8E164C'

...次のエラーを吐き出します。

メッセージ823、レベル24、状態2、行2オペレーティングシステムは、ファイル 'D:\ Database\db.mdf'のオフセット0x00000021442000での読み取り中に、SQL Serverにエラー1(関数が正しくありません)を返しました。
SQL Serverエラーログとシステムイベントログに追加のメッセージが表示される場合があります。これは、データベースの整合性を脅かす深刻なシステムレベルのエラー状態であり、すぐに修正する必要があります。
データベースの完全な整合性チェック(DBCC CHECKDB)を実行します。このエラーは多くの要因によって引き起こされる可能性があります。詳細については、SQL Server Books Onlineを参照してください。

イベントログエラーは上記と同じです。

だから私はDBCC CHECKDBそして次のエラーを吐き出します:

CHECKDBはデータベースで0の割り当てエラーと0の一貫性エラーを検出しました
現在のコマンドで重大なエラーが発生しました。結果があれば破棄します。

私は試した

dbcc checktable ('Entity')

しかしメッセージは:

メッセージ0、レベル11、状態0、行0
現在のコマンドで重大なエラーが発生しました。
結果がある場合は、破棄する必要があります。

バージョン情報:

Microsoft SQL Server 2012 - 11.0.2100.60 (X64) 
Feb 10 2012 19:39:15 
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

破損したテーブルを修復する方法についての提案は、大歓迎です!

5
mbbp

IO要求中にオペレーティングシステムエラーが発生した場合、これは823エラーとして報告されます。823エラーメッセージは、失敗したOSに対してのみ報告されますIO操作エラーが発生した場合は、システムイベントログでディスクまたはファイルシステム関連のエントリを確認する必要があります。ディスクまたはファイルシステムの問題を修正する必要があります。そうしないと、破損が再発します。

Msg 0, Level 11, State 0, Line 0
A severe error occurred on the current command.
The results, if any, should be discarded.

このエラーは通常、メタデータが破損しているか、一貫性がない場合にスローされます。

•実際のエラーは次のとおりです:データベース%dに一貫性のないメタデータがあります。このエラーは修復できず、それ以降のDBCC処理を妨げます。バックアップから復元してください

•ほとんどの場合、メタデータの不整合エラーは修復できません。破損を修正したりデータを回復したりする前に、mdfファイルとldfファイルを安全な場所にコピーしてください。そうすれば、回復の試みによってデータベースがさらに損傷した場合でも、少なくとも常に現在の状態に戻すことができます。

いくつかのオプションがあります。1.バックアップから復元します。 2.できるだけ多くのデータを手動で抽出し、新しいテーブルを作成し、新しいテーブルにデータをインポートし、破損したテーブルを削除し、新しいテーブルの名前を破損したテーブル名に変更します。 3. DBCC CHECKDB REPAIR_ALLOW_DATA_LOSSを実行します。 <-これはおそらく機能しません。4.データを回復するために高価なサードパーティアプリケーションを購入します。

破損したデータベースをバックアップしていない限り、バックアップからの復元のみが機能することが保証されています。

1
stacylaray