Microsoft Dynamics AX SQL Serverデータベースがあります。ただ実行しますDBCC CHECKDB
完全性をチェックするため。数分後、私は結果の終わりに次のようになりました:
CHECKDBはデータベース 'AXPROD'で0割り当てエラーと4一貫性エラーを検出しました。 repair_rebuildは、DBCC CHECKDB(AXPROD)によって検出されたエラーの最小修復レベルです。 DBCCの実行が完了しました。 DBCCがエラーメッセージを出力した場合は、システム管理者に連絡してください。
4つの一貫性エラーが発生したので、これを修正する方法、またはこれらのエラーに関する詳細情報を取得する方法があるかどうかを知りたいです。
これを修正する方法があるかどうか知りたい
これらの一貫性エラーは REPAIR_REBUILD
オプションのDBCC CHECKDB
で修正できる場合があります。
データ損失の可能性のない修復を実行します。これには、非クラスター化インデックスの失われた行の修復などの迅速な修復や、インデックスの再構築などのより時間のかかる修復が含まれます。
Shankyの回答が述べているように、DBCC
の修復もトランザクション内で実行する必要があるため、コミットする前に変更を検査できます。
いつものように、再構築を実行する前に、完全に回復可能なバックアップのセット( log tail を含む)があることを確認してください。 complete有効なバックアップ(該当する場合はログの末尾を含む)のセットがあり、ダウンタイムを許容できる場合は、復元することをお勧めします。これを行う場合は、復元が失敗した場合や、期待どおりに完了しない場合に備えて、現在のデータベースを上書きしないようにしてください。もちろん、それが発生した方法と時期によっては、復元されたデータベースに破損が再び含まれる可能性が非常に高いです:)
またはこのエラーに関する詳細情報を取得する方法
4つの整合性エラーの詳細は、最後の要約セクションの前のDBCC CHECKDB
出力にあります。修理を行う前に、これらを確認して、問題とその原因を理解してください。
DBCC CHECKDB
オプションを使用して、WITH NO_INFOMSGS
出力の量を減らすことができます。
エラーの分析にサポートが必要な場合は、DBCC
エラーメッセージの詳細を質問に追加してください。破損の原因となった可能性のある潜在的なハードウェアの問題を特定して修正することが重要です。
破損の詳細によっては、他の方法で問題を修正できる場合があります(非クラスター化インデックスを手動で再構築するなど)。
修復または再構築が成功した場合、DBCC CHECKDB
を使用してデータベースを再度チェックし、SQL Serverのバージョンでサポートされている完全なチェックセットを使用する必要があります。
あなたの質問では、既知の有効なバックアップから復元する重要なポイントが見当たらないと思いますので、そのポイントも追加します。
REPAIR_REBUILDは最小レベルの修復として推奨され、場合によっては機能する可能性がありますが、repair_rebuildを実行する場合、問題の解決と破損の除去が保証されていないことを知っておく必要があります。その場合は、バックアップから復元することをお勧めします。トランザクション内でrepair_rebuildを使用し、Okの場合はコミットして、それ以外の場合はロールバックする場合に変更を確認できます。以下は BOL Article
REPAIRオプションのいずれかを含むDBCC CHECKDBは完全にログに記録され、回復可能であるため、ユーザーはトランザクション内でREPAIRオプションを指定してCHECKDBを使用することを常にお勧めします(コマンドを実行する前にBEGIN TRANSACTIONを実行します)。操作の結果。次に、ユーザーはCOMMIT TRANSACTIONを実行して、修復操作によって行われたすべての作業をコミットできます。ユーザーが操作の結果を受け入れたくない場合は、ROLLBACK TRANSACTIONを実行して、修復操作の効果を取り消すことができます。
エラーを修復するには、バックアップから復元することをお勧めします。修復操作では、テーブル上またはテーブル間に存在する可能性のある制約は考慮されません。指定したテーブルが1つ以上の制約に関係している場合は、修復操作の後にDBCC CHECKCONSTRAINTSを実行することをお勧めします。 REPAIRを使用する必要がある場合は、修復オプションなしでDBCC CHECKDBを実行して、使用する修復レベルを見つけます。 REPAIR_ALLOW_DATA_LOSSレベルを使用する場合は、このオプションでDBCC CHECKDBを実行する前に、データベースをバックアップすることをお勧めします。
したがって、そのような制約がある場合は、有効なバックアップから復元することも検討してください。その前に、リストアしようとしているバックアップに対して restore verifyonly を実行して、バックアップに一貫性があるかどうかを確認する必要があります。また、正常な復元のみが[〜#〜] all [〜#〜]形式でバックアップの一貫性を保証できることに注意する必要があります。
最後に、SQL ServerのエラーログとWindowsのイベントビューアをチェックして、最初に不整合が発生した理由を確認する必要があります。多くの場合、不良ハードウェアが原因です。