web-dev-qa-db-ja.com

修復されたDBCCCHECKDBは再スキャンする必要がありますか?

DBCC CHECKDBを実行しましたが、割り当てエラーが見つかりました。 REPAIR_ALLOW_DATA_LOSSで実行すると、エラーをスキャンするのに同じ時間がかかるのでしょうか、それとも最後に実行したCHECKDBを使用して高速化を試みるのでしょうか?

(SQL Server2000。はい、その古いものです。いいえ、アップグレードできません。)

4
rfusca

エラーをスキャンするのに同じ時間がかかるでしょうか

はい、もう一度やり直す必要があります..スキャンおよびエラーを修正し、データが失われる可能性があります。注意して、最後の手段として使用してください-修復してデータの損失を許容してください!

参照: 腐敗..人々が最初に試みる最後の手段… ポールランダルから。

注意:SQL Server 2000はサポートされていません。したがって、サポートされているバージョンにアップグレードしない限り、Microsoftはサポートしません。

5
Kin Shah

上記の回答に加えて、通常のDBCCCHECKDBが並行して実行されるEnterpriseEditionを使用している場合、修復オプションを指定して実行する場合は、シングルスレッドで実行する必要があるため、さらに時間がかかります。

以前のDBCCCHECK *コマンドの結果は次のとおりであるため、DBCC CHECK *コマンドはすべてのデータをスキャンする必要があります。

  1. どこにも持続しない

  2. 決して正確であると信頼することはできません。

また、SQL Server 2000のREPAIR_ALLOW_DATA_LOSSにも注意してください。正しく機能しない修復が多数あり、コードベースの一般的な書き直しの一環としてSQL Server2005用に修正しました。

ありがとう

6
Paul S. Randal