web-dev-qa-db-ja.com

ストレージがブリップしたときにDBCCCheckDBを強制終了する

クラスタのSANの1つにあるコントローラは、定期的に再起動しています。どうやらファームウェアのアップデートで修正できるようですが、数日でアップデートを適用できるようになるまで、私はこの問題に耐えなければなりません。問題は、DBCC CHECKDBの実行中に(夜間のメンテナンス中に)それらの1つに障害が発生すると、CHECKDBがハングすることです。私はそれを殺すことができないようです....それはそれがASYNC_IO_COMPLETIONを永遠に待っていることを示しています。インスタンスを循環させる必要がありますか、それともCHECKDBを強制終了する別の方法がありますか?

SQL Server 2005 RTM&SP2インスタンス。

1
Aaron Alton

わかりました-これは適切な動作です。何が起こっているのかというと、必要なデータベーススナップショットを作成している間にDBCCCHECKDBを強制終了したということです。スナップショットの作成の一部は、チェック対象のデータベースでクラッシュリカバリを実行することですが、データベーススナップショットのコンテキストに組み込まれます。クラッシュリカバリを停止することはできず、それを実行しているspidを強制終了することもできません。したがって、-唯一のオプションは、インスタンスが終了するのを待つか、インスタンスを循環させることです-これにより、スナップショットが削除されます。データベーススナップショットを使用するようにCHECKDBを変更したとき、これが潜在的な問題になることがわかっていましたが、代替手段はありませんでした。

もう少し説明するこのブログ投稿をチェックしてください: DBCC CHECKDBの実行時にトランザクションはロールバックしますか?

乾杯

2
Paul Randal

あなたがそれを殺すことができないように見えると言うとき、あなたは仕事をキャンセルしようとしていますか?それとも、アクティビティモニターからSPIDを強制終了していますか?

1
BradC