MSDNの article コマンド "DBCC CHECKDB"については、構文セクションでデータベースの修復を実行する3つの方法について説明しています。
- REPAIR_ALLOW_DATA_LOSS
- REPAIR_FAST
- REPAIR_REBUILD
しかし、容疑者(私はこれらの steps )を実行するこのモードに入れました)データベースを修復する方法を探していたときに、次のステートメントを見つけました。
DBCC CHECKDB(databaseName、repair))
私はステートメントを実行しましたが、うまくいきました。 「_allow_data_loss」、「_ fast」、または「_rebuild」でWordを終了せずに「repair」パラメーターへの参照が存在しないため、混乱しています。
緊急ステータスのデータベースで「DBCC CHECKDB(databaseName、repair_rebuild)」を実行しようとした場合、データベースが緊急状態のときは、そのレベルの修復を実行できないというエラーメッセージが表示されます。したがって、「repair」だけが「repair_rebuild」であることを破棄します。
そのステートメントは、私が見つけたスクリプトの3行目です。
3番目のステートメント実行の出力を読み取ると、プロセスに関する情報は表示されますが、修復で使用されたレベルに関連するものは何もありません。
前もって感謝します、
十分に破損したデータベースでこれを実行すると、次のエラーメッセージが表示されます。
メッセージ7909、レベル20、状態1、行1
緊急モードの修復に失敗しました。バックアップから復元する必要があります。
これはestimateにつながりますREPAIR
は単にREPAIR_ALLOW_DATA_LOSS
の短い形式です。少なくとも、問題のデータベースの回復可能性に関する期待に関しては、同じように扱います。言い換えれば、これは最後の手段の操作と見なされるべきであり、他のすべてが失敗したときにのみ試行されるべきです。このプロセスを実行する前に、データベースの物理コピーを必ず作成してください。